Manually restart the dispatcher

Manually restart the dispatcher

Oracle Dispatcher in alert log is in hanged state. I manually restart the dispatcher with the following commands.

Handle following error in alert log:
–found dead dispatcher ‘D002’
–Waiting for dispatcher ‘D000’ to shutdown
–ORA-00603: ORACLE server session terminated by fatal error
–ORA-00600: internal error code, arguments: [kjpcre2], [], [], [], [], []

Check the status of dispatcher from following views:

select name, status ,accept ,network from v$dispatcher;

Example:
SQL> select name, status ,accept ,network from v$dispatcher;
NAME STATUS ACC NETWORK
---- ------ --- --------------------------------------------------------
D000 WAIT NO (ADDRESS=(PROTOCOL=tcp)(HOST=IXC.oracle.com)(PORT=61831))

Note: Dead dispatcher output is status = refuse and accept = NO it means dispatcher is dead.PMON process automatically handle the Dead dispatcher process it restart it when such a condition is arise. You can also do it manually to shutdown the dead processes explicitly. PMON will restart it automatically

Manually down the dispatcher if PMON is not handle

-- Shutdown the dispatcher 'D000'
SQL> alter system shutdown immediate 'D000';
System altered.

--Check the status of dispatcher after shutdown it.
SQL> select name, status ,accept ,network from v$dispatcher;
NAME STATUS ACC NETWORK
---- --------- --- ---------------------------------------------------------
D000 TERMINATE NO (ADDRESS=(PROTOCOL=tcp)(HOST=IXC.oracle.com)(PORT=61831))

--After few seconds it will show no dispatcher is running:
SQL> select name, status ,accept ,network from v$dispatcher;
no rows selected

Check the default parameter settings

SQL> show parameter dispatcher
NAME TYPE VALUE
---------------- -------- ------------------------------
dispatchers string (PROTOCOL=TCP) (SERVICE=XEXDB)
max_dispatchers integer

Start the dispatcher process manually if PMON is not started it
Note: We used scope in memory so it does not effect your default setting in spfile when system reboot it goes to default setting.

-- For single dispatcher
ALTER SYSTEM SET DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(CONNECTIONS=500)(HOST=IXC.oracle.com))(SERVICE=XEXDB)" SCOPE=MEMORY;

--Run multiple dispacter than add parameter dispatcher with value means no of dispatcher started
ALTER SYSTEM SET DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(CONNECTIONS=500)(HOST=IXC.oracle.com))(DISPATCHERS=5)(SERVICE=XEXDB)" SCOPE=MEMORY;

Check status of multiple dispatcher started

SQL> select name, status ,accept ,network from v$dispatcher;

NAME STATUS ACC NETWORK
---- ------ --- ---------------------------------------------------------------
D000 WAIT YES (ADDRESS=(PROTOCOL=tcp)(HOST=IXC.oracle.com)(PORT=60413))
D001 WAIT YES (ADDRESS=(PROTOCOL=tcp)(HOST=IXC.oracle.com)(PORT=60414))
D002 WAIT YES (ADDRESS=(PROTOCOL=tcp)(HOST=IXC.oracle.com)(PORT=60415))
D003 WAIT YES (ADDRESS=(PROTOCOL=tcp)(HOST=IXC.oracle.com)(PORT=60419))
D004 WAIT YES (ADDRESS=(PROTOCOL=tcp)(HOST=IXC.oracle.com)(PORT=60420))

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.