Skip Headers
Oracle® Database Net Services Administrator's Guide
11g Release 1 (11.1)

Part Number B28316-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

12 Configuring Dispatchers

This chapter describes how to configure dispatcher.

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 includes the following topics:

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 SQL ALTER 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:

After setting this parameter, you do not need to restart the instance. You can alter dispatchers configurations with the SQL statement ALTER SYSTEM.

Note:

Database Configuration Assistant enables you to configure the DISPATCHERS parameter.

See Also:

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:

In this case, the 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 2500 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.

Enabling Session Multiplexing

Session multiplexing, available with Oracle Connection Manager, enables multiple client sessions to funnel through a single protocol connection. For example, several user processes can connect to one dispatcher by way of a single connection from Oracle Connection Manager.

Oracle Connection Manager communicates from users to the dispatcher by way of a shared connection. At any one time, zero, one, or a few users might need the connection, while other user processes linked to the dispatcher by way of the connection manager process are idle. This way, session multiplexing is beneficial because it maximizes use of the dispatcher process connections.

Session multiplexing is also useful for multiplexing database link sessions between dispatchers. The limit on the number of sessions for each dispatcher is operating system specific.

To enable session multiplexing, simply set attribute MULTIPLEX in the DISPATCHERS parameter to on or to an equivalent value.

DISPATCHERS="(PROTOCOL=tcp)(MULTIPLEX=on)"

See Also:

"Enabling Session Multiplexing" for configuration details and "Enabling Connection Pooling"

Grouping Services by Dispatcher

An Oracle database can be represented by multiple service names. Because of this, a pool of dispatchers can be allocated exclusively for clients requesting a particular service. This way, the mission critical requests may be given more resources and, thus, in effect increase their priority.

For example, the following initialization parameter file sample shows two dispatchers. The first dispatcher services requests for clients requesting sales.us.acme.com. The other dispatcher services requests only for clients requesting adminsales.us.acme.com.

SERVICE_NAMES=sales.us.acme.com
INSTANCE_NAME=sales
DISPATCHERS="(PROTOCOL=tcp)" 
DISPATCHERS="(PROTOCOL=tcp)(SERVICE=adminsales.us.acme.com)" 

Configuring Clients for Environments Using Both Dedicated Server and Shared Server

If shared server is configured and a client connection request arrives when no dispatchers are registered, the request is processed by a dedicated server process. If you want a particular client always to use a dispatcher, configure (server=shared) in the CONNECT_DATA section of the connect descriptor. For example:

sales= 
(DESCRIPTION= 
  (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
  (CONNECT_DATA=
     (SERVICE_NAME=sales.us.acme.com)
     (SERVER=shared)))

If a dispatcher is not available, the client connection request is rejected.

See Also:

"Configuring Advanced Connect Data Parameters" to set the SERVER parameter

If the database is configured for shared server and a particular client requires a dedicated server, you can configure the client to use a dedicated server in one of the following ways:

If database resident connection pooling is enabled on the server, use the value pooled to get a connection from the pool.

See Also:

Oracle Call Interface Programmer's Guide and Oracle Database Administrator's Guide for more information about enabling and configuring database resident connection pooling