Configuration of Oracle Shared Server

This article explains configuration of oracle Database 10g as shared server. Before reading this article you must have concept of Oracle shared server and dedicated server architecture. Visit following link to revive shared server and dedicated server architecture.

http://exploreoracle.com/2009/07/17/oracle-shared-server-and-oracle-dedicated-server-architecture/

Configuration of shared server involves only few steps. Oracle database 10g has pre-configured setting to enable shared server. Shared server can be configured by setting values for few initialization parameters at run time. These parameters can also be initialized in initialization parameter file. Following section discusses these parameters in detail.

SHARED_SERVERS Initialization Parameter

SHARED_SERVERS is the only parameter necessary to enable a shared server. Its value specifies that how many shared server are to be started.

Use following SQL statement to enable shared server.

Alter System Set SHARED_SERVERS = 5;

This command will start five shared servers, oracle database will also start a dispatcher process. Remember we did not configure any dispatcher. Oracle database will create dispatcher on its own.

To configure Shared server at database startup, use following setting in initialization parameter file

SHARED_SERVERS=5;

You can query V$SHARED_SERVER view to confirm changes.

MAX_SHARED_SERVERS Initialization Parameter

Oracle database keeps number of shared servers equal to SHARED_SERVERS parameter value. So SHARED_SERVER defines lower limit of shared server processes. PMON starts as many Shared servers as needed. But you can restrict upper limit by using MAX_SHARED_SERVERS.

For example, use following setting in parameter file to restrict maximum shared Server to 10;

MAX_SHARED_SERVERS= 10;

SHARED_SERVER_SESSIONS Initialization Parameter

Use this parameter to limit maximum concurrent shares server sessions. Value of this parameter should be less than SESSION initialization parameter. You may use this parameter to make sure that resources are always available for few dedicated server sessions.

DISPATCHERS Initialization Parameter

DISPATCHERS parameter is used to create dispatcher processes. For example, use following setting in parameter file to create Dispatcher.

Use following setting to create 3 dispatchers

DISPATCHERS=”(PROTOCOL=TCP)(DISPATCHERS=3)”

Query V$DISPATCHER view to find out details about currently running dispatchers.

 

Client Side Setting for Shared Server

 

When oracle database has been configured as Shares server, by default all connection will be entertained by Shared Server. Net service on client can be modified to use a shared Server or Dedicated server. Use SERVER=SHARED or SERVER=DEDICATED

in connect_data section. As shown in example below

Market=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)(HOST=market-server)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=market.com)
(SERVER=dedicated)
))

You can query V$SESSION view to confirm Dedicated or Shared servers sessions.

This article explained quick configuration steps, Use following link to explore more details about oracle Shared Server

http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/manproc.htm

3 thoughts on “Configuration of Oracle Shared Server”

  1. Hello.

    I’m confused about how you’ve defined MAX_SHARED_SERVERS.

    This is the formal definition of the value:

    “If MAX_SHARED_SERVERS is specified, then it should be greater than or equal to SHARED_SERVERS and less than PROCESSES.”

    Then, why you say this has to be 2?

  2. Alenxander,

    You are right. It is a typo. It was intended to be 10 instead of 2. Has been corrected now.

    Thanks for pointing out.

Leave a Reply

Your email address will not be published. Required fields are marked *