This module introduced you to the theory behind using and configuring the Multi-Threaded Server, which was used as a supplement to the standard Oracle listener,
which allowed for hundreds of concurrent Net connections from remote clients.
A thorough understanding of the inner workings of MTS was critical when Oracle 8 was used to make connections between clients and servers.
Oracle 9i has renamed the (MTS) mutli-threaded server to Shared Server.
The shared-server architecture increases the scalability of applications and the number of clients that can be simultaneously connected to the database
The Oracle Shared Server, formerly known as the multithreaded server (MTS), supports connections to Oracle via dispatcher processes and shared server processes.
Dispatcher processes accept connection requests from users, and shared server processes communicate with the database.
Shared Server allows many users to share a small number of shared server processes, potentially reducing the amount of memory required to support the database's users. Shared Server is most effective when there are many users initiating connections, and when the application users frequently interrupt their data input activity.
Shared Server Processes
Consider an order entry system with dedicated server processes. A customer places an order as a clerk enters the order into the database. For most of the transaction, the clerk is on the telephone talking to the customer and the server process dedicated to the clerk’s user process remains idle. The server process is not needed during most of the transaction, and the system is slower for other clerks entering
orders because the idle server process is holding system resources.
The shared server architecture eliminates the need for a dedicated server process for each connection (see Figure 4-7).
In a shared server configuration, client user processes connect to a dispatcher.
A dispatcher can support multiple client connections concurrently. Each client connection is bound to a virtual circuit. A virtual circuit is a piece of shared memory
used by the dispatcher for client database connection requests and replies. The dispatcher places a virtual circuit on a common queue when a request arrives.
An idle shared server picks up the virtual circuit from the common queue, services the request, and relinquishes the virtual circuit before attempting to retrieve another virtual circuit from the common queue. This approach enables a small pool of
server processes to serve a large number of clients. A significant advantage of shared server architecture over the dedicated server model is the reduction of
system resources, enabling the support of an increased number of users.
The shared server architecture requires Oracle Net Services. User processes targeting the shared server must connect through Oracle Net Services, even if they
are on the same machine as the Oracle instance.
Having completed this module, you should be able to:
Define types of Oracle listeners
Describe how MTS differs from a dedicated listener
Describe how the dedicated listener spawns connections
Identify the components of MTS
Describe how MTS handles incoming connections
Define the elements of MTS
The next module takes a much more practical look at what you need to do to configure MTS.