In Oracle 9i, the `mts_dispatchers` configuration, which was used for Multi-Threaded Server (MTS) in Oracle 8i, did indeed undergo changes as part of the shift to the Shared Server architecture. However, the term `mts_dispatchers` itself did not get renamed but evolved in usage.
Key Changes from Oracle 8i to Oracle 9i:
-
Dispatcher Naming and Functionality:
-
In Oracle 8i, the configuration was explicitly referred to as
mts_dispatchers
in the init.ora
or spfile.ora
file. The dispatcher was the process that managed incoming client requests in a shared server environment.
-
In Oracle 9i, the dispatcher processes were integrated into the more generalized Shared Server configuration, but the
mts_dispatchers
parameter remained valid. Essentially, Oracle kept the dispatcher functionality but added more flexibility and features for better handling and configuration.
-
Oracle 9i Shared Server Configuration:
-
Legacy Support:
-
For backward compatibility, Oracle 9i still supported
mts_dispatchers
, but users were encouraged to migrate to the newer DISPATCHERS
parameter.
Conclusion:
While `mts_dispatchers` was still supported in Oracle 9i for backward compatibility, it was effectively replaced by the more flexible "DISPATCHERS" parameter.
The change provided improved control and scalability for Shared Server configurations in Oracle 9i and later versions.
The `mts_dispatchers` parameter in Oracle Shared Server controls the number of "dispatcher processes" started at instance startup in Oracle versions prior to 9i.
Explanation:
- In Oracle Shared Server architecture, dispatcher processes handle incoming client connection requests and forward them to shared server processes for execution.
- The `mts_dispatchers` parameter (introduced in Oracle 8i and earlier) is used to configure these dispatcher processes.
Key Functions of `mts_dispatchers`:
-
Number of Dispatcher Processes:
- It specifies the number of dispatcher processes that should be started when the instance starts.
- The syntax allows specifying multiple dispatchers, each tailored for a particular protocol or set of clients.
-
Protocol and Service Specification:
- Using
mts_dispatchers
, you can configure specific dispatchers for different network protocols (e.g., TCP, HTTP) and services.
-
Dynamic Adjustment:
- In Oracle 8i, the number of dispatcher processes could be adjusted dynamically if additional demand arises, but this required specific configuration.
Example mts_dispatchers
Configuration:
mts_dispatchers = "(PROTOCOL=TCP)(DISPATCHERS=3)"
- This starts 3 dispatcher processes for the TCP protocol at instance startup.
Deprecation in Oracle 9i and Beyond:
Starting with Oracle 9i, the `DISPATCHERS` parameter replaced `mts_dispatchers`. While `mts_dispatchers` was still supported for backward compatibility in Oracle 9i, it is recommended to use the newer `DISPATCHERS` parameter for enhanced flexibility and features, including support for additional options like failover and load balancing.
If you're working with Oracle 9i or later, consider using the `DISPATCHERS` parameter for shared server configurations.
The preceding lesson examined the first three init.ora dispatcher parameters required to initialize the Oracle Shared Server.
This lesson examines the critical
mts_dispatchers
parameter.
mts_dispatchers
controls the number of dispatcher processes started at instance startup. You must estimate the number of dispatchers to start for each network protocol before instance startup. The optimal number of dispatcher processes for each instance depends upon:
- The performance you want from your database
- The host operating system's limit on the number of connections per process
- The number of connections required per network protocol
The instance must be able to provide as many connections as there are concurrent users on the database system.
More dispatchers means users do not have to wait as long for dispatcher service. Once you know the number of possible connections per process for your operating system, you can calculate the initial number of dispatcher processes per network protocol to create during instance startup, using the following formula:
number of dispatchers
| = |
maximum number of concurrent sessions
connections per dispatcher
|
For example, assume that your system typically has 80 users concurrently connected via TCP/IP and 40 users connected via SPX.
In this case, the MTS_DISPATCHERS parameter should be set as follows:
MTS_DISPATCHERS = "(PROTOCOL=TCP) (DISPATCHERS=3)"
MTS_DISPATCHERS = "(PROTOCOL=SPX) (DISPATCHERS=3)"
In Oracle 11g R2, the concept of configuring `DISPATCHERS` for the shared server architecture remains similar to Oracle 8i, but the parameter `MTS_DISPATCHERS` has been renamed to `DISPATCHERS`. Here is the updated configuration text for Oracle 11g R2:
DISPATCHERS = "(PROTOCOL=TCP) (DISPATCHERS=3)"
DISPATCHERS = "(PROTOCOL=SPX) (DISPATCHERS=3)"
This syntax aligns with Oracle 11g R2, where you specify the protocol and the number of dispatcher processes for each connection type.
Even though the number of dispatchers is specified in the init.ora file, you can change it online in Oracles Shared Server with the
ALTER SYSTEM
command: The default prompt in SQL*Plus is
SQL>,
SQL>, ALTER SYSTEM SET MTS_DISPATCHERS = 'TCPIP,4';
When several listeners are defined (or you are using SQL*Net 1.0 and 2.0), the user may connect to the server either via a dedicated server or via the MTS. The next lesson examines the remaining three init.ora parameters required to initialize MTS.