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.

Related views:

select * from v$dispatcher
select * from v$dispatcher_config
select * from v$dispatcher_rate
select * from v$queue

— Adding DISPATCHER- If you are using RAC than you have to use Virtual Interface!
# Node 1

SQL> alter system set dispatchers='(address=(protocol=tcp)(host=node1-vip))(dispatchers=2)’ scope=both sid=’racdb1′;
SQL> alter system register;

# Node 2

SQL> alter system set dispatchers='(address=(protocol=tcp)(host=node2-vip)) (dispatchers=2)’ scope=both sid=’racdb2′;
SQL> alter system register;

— DISPATCHER running or not?
lsnrctl services


lsnrctl services SERVICE_NAME


— ————————————————————————
— Let us assume We have already 1 dispatcher on our system but We want to add 2 more
— If We are on RAC system and If We dont give SID,than dispatcher will be add on 2 notes same times-
— ————————————————————————
alter system set dispatchers=”(protocol=TCP)(dispatchers=3)” SID=’XXXX’

— How to stop DISPATCHER or Disable
— Restart dispatcher
If you need to close dispatcher

SELECT ‘alter system shutdown immediate ”’ || name || ”’;’
FROM v$dispatcher vd, v$process vp
WHERE vd.paddr = vp.addr
ORDER BY name;

alter system shutdown immediate ‘D000’;

If PMON did not restart the dispatchers, you can re-enable dispathers by this:

— Open-
alter system set dispatchers='(address=(protocol=tcp)(’ scope=both sid=’XXX’;

— Disable permanently-
alter system set dispatchers=”(protocol=TCP)” scope=spfile; << reboot db

— How to check current usage-

SELECT status,count(*) FROM v$circuit group by rollup(status);

EOF 2102

Outbound number should dicrease-increase..

SELECT SADDR,count(*) FROM v$circuit group by rollup(SADDR);

00 2153
0700010EB0BB5BB0 1
0700010EB0BB8C90 1


How To Configure Shared Server Dispatchers For RAC Environment (Doc ID 578524.1)

Shared Server Shows High Value for MAX_CONN and Circuits status EOF with SADDR 00 (Doc ID 845757.1)