Here we will have a look on how to configure shared servers.
sys@OCM11G> select * from v$dispatcher;
no rows selected
sys@OCM11G> select * from v$shared_server;
no rows selected
sys@OCM11G> alter system set dispatchers="(PROTOCOL=tcp)(DISPATCHERS=3)";
System altered.
sys@OCM11G> alter system set shared_servers=5;
System altered.
sys@OCM11G> select name,network,idle,busy,listener from v$dispatcher;
NAME NETWORK IDLE BUSY LISTENER
---------- -------------------------------------------------------------------------------------------------------- ---------- ---------- ----------
D000 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=25640)) 15998 0 0
D001 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=45614)) 15994 0 0
D002 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=55241)) 15960 0 0
sys@OCM11G> select name,status,busy,circuit from v$shared_server;
NAME STATUS BUSY CIRCUIT
---------- ---------------- ---------- --------
S000 WAIT(COMMON) 6 00
S001 WAIT(COMMON) 4 00
S002 WAIT(COMMON) 3 00
S003 WAIT(COMMON) 2 00
S004 WAIT(COMMON) 0 00
sys@OCM11G> alter system set dispatchers="(PROTOCOL=tcp)(DISPATCHERS=2)";
System altered.
sys@OCM11G> select name,network,idle,busy,status from v$dispatcher;
NAME NETWORK IDLE BUSY STATUS
---------- ---------------------------------------------------------------------- ---------- ---------- ----------------
D000 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=25640)) 49609 0 WAIT
D001 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=45614)) 49605 0 WAIT
D002 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=55241)) 43922 0 TERMINATE
sys@OCM11G> select name,network,idle,busy,status from v$dispatcher;
NAME NETWORK IDLE BUSY STATUS
---------- ---------------------------------------------------------------------- ---------- ---------- ----------------
D000 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=25640)) 52149 0 WAIT
D001 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=45614)) 52145 0 WAIT
sys@OCM11G> alter system set shared_servers=2;
System altered.
sys@OCM11G> select name,status,busy,circuit from v$shared_server;
NAME STATUS BUSY CIRCUIT
---------- ---------------- ---------- --------
S000 WAIT(COMMON) 6 00
S001 WAIT(COMMON) 4 00
S002 TERMINATED 3 00
S003 TERMINATED 2 00
S004 TERMINATED 0 00
sys@OCM11G> select name,status,busy,circuit from v$shared_server;
NAME STATUS BUSY CIRCUIT
---------- ---------------- ---------- --------
S000 WAIT(COMMON) 6 00
S001 WAIT(COMMON) 4 00
sys@OCM11G> select network,listener from v$dispatcher_config;
NETWORK LISTENER
------------------------------------------------------------ ------------------------------------------------------------
(ADDRESS=(PARTIAL=YES)(PROTOCOL=tcp)) (ADDRESS=(PROTOCOL=TCP)(HOST=ocm11g.localdomain)
(PORT=1521)) (ADDRESS=(HOST=ocm11g.localdomain)
(PORT=1630)(PROTOCOL=tcp))
sys@OCM11G> select conf_indx from v$dispatcher_config;
CONF_INDX
----------
0
sys@OCM11G> alter system set dispatchers="(INDEX=0)(DISPATCHERS=5)";
System altered.
sys@OCM11G> select name,network from v$dispatcher;
NAME NETWORK
---------- ------------------------------------------------------------------
D000 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=25640))
D001 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=45614))
D002 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=34986))
D003 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=51090))
D004 (ADDRESS=(PROTOCOL=tcp)(HOST=ocm11g.localdomain)(PORT=57762))
sys@OCM11G> alter system set dispatchers="(INDEX=0)(DISPATCHERS=1)";
System altered.
sys@OCM11G> select name,status from v$dispatcher;
NAME STATUS
---------- ----------------
D000 WAIT
D001 TERMINATE
D002 TERMINATE
D003 TERMINATE
D004 TERMINATE
sys@OCM11G> select name,status from v$dispatcher;
NAME STATUS
---------- ----------------
D000 WAIT
sys@OCM11G> alter system set dispatchers="(INDEX=0)(DISPATCHERS=3)";
System altered.
sys@OCM11G> select name,status from v$dispatcher;
NAME STATUS
---------- ----------------
D000 WAIT
D001 WAIT
D002 WAIT
sys@OCM11G> alter system shutdown immediate 'D002';
System altered.
sys@OCM11G> select name,status from v$dispatcher;
NAME STATUS
---------- ----------------
D000 WAIT
D001 WAIT
D002 TERMINATE
sys@OCM11G> alter system set shared_servers=0;
System altered.
sys@OCM11G> alter system set dispatchers='';
System altered.