Configuring Dispatchers
The shared server architecture enables a database server to allow many user processes to share very few server processes, so the number of users that can be supported is increased. With shared server, many user processes connect to a dispatcher. The dispatcher directs multiple incoming network session requests to a common queue. An idle shared server process from a shared pool of server processes picks up a request from the queue. This means a small pool of server processes can serve a large number of clients.
This chapter describes how to configure dispatcher. It contains these topics:
Configure the
To configure connection pooling, set the
Consider a system that can support 950 connections for each process and has:
Source/Reference : http://www.stanford.edu/dept/itss/docs/oracle/10g/network.101/b10775/dispatcher.htm
The shared server architecture enables a database server to allow many user processes to share very few server processes, so the number of users that can be supported is increased. With shared server, many user processes connect to a dispatcher. The dispatcher directs multiple incoming network session requests to a common queue. An idle shared server process from a shared pool of server processes picks up a request from the queue. This means a small pool of server processes can serve a large number of clients.
This chapter describes how to configure dispatcher. It contains these topics:
- Configuring Dispatchers
- Enabling Connection Pooling
- Grouping Services by Dispatcher
- Configuring Clients for Environments Using Both Dedicated Server and Shared Server
Configuring Dispatchers
Shared memory resources for dispatchers, virtual circuits, and shared servers are preconfigured to allow the enabling of shared servers at runtime. Database administrators can start dispatchers and shared servers with the SQLALTER SYSTEM
statement without having to restart the instance to start shared servers. A dispatcher is started automatically on the TCP/IP protocol when shared server mode is turned on and the dispatchers parameterhas not been set. The default configuration for the dispatcher is equivalent to the following DISPATCHERS
parameter setting in the database initialization parameter file.dispatchers="(PROTOCOL=tcp)"In configurations in which client load is causing a strain on memory and other system resources, database administrators can remedy load issues by starting shared server resources.
Configure the
DISPATCHERS
parameter if either of the following conditions apply:- You need to configure another protocol other than TCP/IP.
You configure an protocol address with one of the following attributes:
ADDRESS (ADD or ADDR)
DESCRIPTION (DES or DESC)
PROTOCOL (PRO or PROT)
- You want to configure one or more of the optional dispatcher attributes:
Enabling Connection Pooling
Connection pooling is a resource utilization feature that enables you to reduce the number of physical network connections to a dispatcher. This is achieved by sharing or pooling a set of connections among the client processes.To configure connection pooling, set the
DISPATCHERS
parameter in the initialization parameter file with the POOL
attribute and the following optional attributes:Consider a system that can support 950 connections for each process and has:
- 4000 users concurrently connected through TCP/IP
- 2,500 sessions concurrently connected through TCP/IP with SSL
DISPATCHERS
attribute for TCP/IP should be set to a minimum of five dispatchers and TCP/IP with SSL should be set to three dispatchers:DISPATCHERS="(PROTOCOL=tcp)(DISPATCHERS=5)" DISPATCHERS="(PROTOCOL=tcps)(DISPATCHERS=3)"Connection pooling can allow each dispatcher to handle more than 950 sessions. For example, suppose that clients are idle most of the time and one dispatcher can route requests and responses for 4000 TCP/IP sessions, or 2,500 TCP/IP with SSL sessions. The following configuration reduces the number of dispatchers required to one for each protocol and allows the dispatchers to be more fully utilized:
DISPATCHERS="(PROTOCOL=tcp)(DISPATCHERS=1)(POOL=on)(TICK=1) (CONNECTIONS=950)(SESSIONS=4000)" DISPATCHERS="(PROTOCOL=tcps)(DISPATCHERS=1)(POOL=on)(TICK=1) (CONNECTIONS=950)(SESSIONS=2500)"The DISPATCHERS and CONNECTIONS attributes do not have to be specified, since the default for DISPATCHERS is 1 and the default for CONNECTIONS is the maximum number of connections for each process, which is operating system dependent.
Source/Reference : http://www.stanford.edu/dept/itss/docs/oracle/10g/network.101/b10775/dispatcher.htm