Network Config   «Prev  Next»

Lesson 11

Shared Server Configuration Conclusion

This module took a close look at how the Oracle Shared Server is configured and used. The main points of this module include:
  1. Shared Server uses pre-allocated dispatcher processes to handle incoming requests.
  2. Shared Server dispatchers channel requests to Shared Server servers that are dynamically allocated and de-allocated as needed.
  3. If you bounce a listener, you must also bounce the database or the listener will process connections in dedicated mode.
  4. Shared Server can be configured for connection pooling to minimize resources on the server.
  5. You can define multiple Shared Server listeners for any database server.
  6. Listener load balancing can be used with the Shared Server to ensure that all incoming connections are processed rapidly.
  7. The v$dispatcher view can be used to determine the busy rate for each Shared Server dispatcher.
  8. The v$queue view can be used to determine the total wait time in the Shared Server server queues.
  9. 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.

Shared Server architecture can use pre-allocated Dispatcher Processes

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:
  1. 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.
  2. Pre-Allocating Dispatcher Processes:
    • You can configure the number of dispatcher processes using the DISPATCHERS initialization parameter. By specifying this parameter, you pre-allocate a fixed number of dispatcher processes when the instance starts.
    • Example Configuration:
      ALTER SYSTEM SET DISPATCHERS = '(PROTOCOL=TCP)(DISPATCHERS=3)';
              
    • This configuration pre-allocates three dispatcher processes for TCP protocol connections.
  3. 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.
  4. 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.
  5. Monitoring Dispatcher Processes:
    • You can monitor dispatcher processes and their performance using views such as:
      • V$DISPATCHER: Provides information about each dispatcher.
      • V$DISPATCHER_RATE: Tracks performance statistics such as the number of requests processed by each dispatcher.
    • Example Query:
      SELECT NAME, NETWORK, WAIT, TOTAL_REQUESTS
      FROM V$DISPATCHER;
              
    • Output Interpretation:
      • NAME: Name of the dispatcher process.
      • NETWORK: Protocol being used (e.g., TCP).
      • WAIT: Time spent waiting for requests.
      • TOTAL_REQUESTS: Total number of requests processed by the dispatcher.
  6. 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.

Glossary terms

This module introduced you to the following terms:
  1. Contention: A term used to describe many resources that are competing for a single database resource.
  2. 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.

Multithreaded Shared Servers - Quiz

Before moving on to the next module, click the Quiz link to test your knowledge of Shared Server.
Multithreaded Shared Servers - Quiz

SEMrush Software