This module took a close look at how the Oracle Shared Server is configured and used. The main points of this module include:
- Shared Server uses pre-allocated dispatcher processes to handle incoming requests.
- Shared Server dispatchers channel requests to Shared Server servers that are dynamically allocated and de-allocated as needed.
- If you bounce a listener, you must also bounce the database or the listener will process connections in dedicated mode.
- Shared Server can be configured for connection pooling to minimize resources on the server.
- You can define multiple Shared Server listeners for any database server.
- Listener load balancing can be used with the Shared Server to ensure that all incoming connections are processed rapidly.
- The
v$dispatcher
view can be used to determine the busy rate for each Shared Server dispatcher.
- The
v$queue
view can be used to determine the total wait time in the Shared Server server queues.
- Most of Shared Server parameters can be altered while Oracle is running with the
ALTER SYSTEM
command.
You should now have all of the information that you need to successfully define and use Shared Server on an Oracle server.
In Oracle 19c, the Shared Server architecture can use pre-allocated dispatcher processes to handle incoming client requests. Dispatchers play a critical role in managing client connections and routing their requests to shared server processes for execution.
Here’s how dispatchers work in the **Shared Server** architecture:
-
Role of Dispatchers in Shared Server:
- Dispatchers manage the client connections and forward client requests to a common request queue in the shared server.
- Each dispatcher process can handle multiple user sessions concurrently, reducing the need for a dedicated server process for every client connection.
-
Pre-Allocating Dispatcher Processes:
-
Dynamic Behavior of Dispatchers:
- Oracle can dynamically adjust the number of dispatcher processes based on workload demand, but pre-allocating dispatchers ensures that a minimum number is always available.
- Additional dispatchers may be spawned if the workload exceeds the capacity of the initially allocated ones.
-
Key Benefits of Pre-Allocated Dispatchers:
- Reduced Connection Overhead: Dispatchers are ready to handle requests immediately upon instance startup.
- Scalability: Ensures adequate resources are available for client connections without causing connection delays during peak periods.
- Efficient Resource Usage: Shared servers and dispatchers allow the system to support many users without requiring a one-to-one mapping of client connections to server processes.
-
Monitoring Dispatcher Processes:
-
Key Considerations for Using Pre-Allocated Dispatchers:
- Workload Analysis: Ensure the number of dispatchers matches the expected client connection load.
- Protocol-Specific Configuration: You can configure dispatchers for specific protocols (e.g.,
TCP
, HTTP
) depending on your application needs.
- Fault Tolerance: Pre-allocated dispatchers ensure reliability by avoiding delays in creating dispatcher processes during high demand.
By configuring and pre-allocating dispatcher processes, Oracle's Shared Server can efficiently handle a large number of simultaneous client connections with minimal resource overhead, making it a scalable solution for multi-user environments.
This module introduced you to the following terms:
- Contention: A term used to describe many resources that are competing for a single database resource.
- Load balancing: The distribution of connections among Oracle listeners to ensure that incoming requests do not have to wait for a listener connection.
The next module examines the Oracle connection manager utility and how it is used in Oracle networking.