RE: 9i shared servers (dispatcher) hung
- From: "Mary Bahrami" <mbahrami@xxxxxxxxxxxxxxxx>
- To: <JBECKSTROM@xxxxxxxxx>, <oracle-l@xxxxxxxxxxxxx>, <oracle-db-l@xxxxxxxxxxxxxxxxxxxx>, <ORACLE-L@xxxxxxxxxxxxx>, <oracledba@xxxxxxxxxxx>, <oracle-rdbms@xxxxxxxxxxxxxxx>
- Date: Wed, 31 Aug 2005 11:07:11 -0700
Jeffrey,
We get this occasionally, usually when the developers put in a new piece of
code. They would bounce that database and call it an oracle problem. Sure.
What happens in our case is that something makes connections and doesn't
release them, so new connections are impossible. I have tried killing
dispatchers, but have found that a better method (not elegant, but it works) is
to kill some of the oldest shared server processes in order to get a session
open for myself to do some checking. Someone recently posted code to keep a
session open constantly, will implement when I get time.
I then have a script to check v$circuit, v$dispatcher (% busy),
v$queue,v$shared_server, and v$session; it usually shows dispatchers are
completely busy, v$process is maxed out. I have another script to dump the
current sql statement for each connection so I can find the problem. Then I
start killing the processes that are causing the problem, usually something
automated with no checking. Haven't had to bounce the db since; but have
increased some parameters to take care of legimate peaks in traffic.
HTH,
Mary
solaris 8, ora 9.2.0.6
-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]On
Behalf Of Jeffrey Beckstrom
Sent: Wednesday, August 31, 2005 10:44 AM
To: oracle-l@xxxxxxxxxxxxx; oracle-db-l@xxxxxxxxxxxxxxxxxxxx;
ORACLE-L@xxxxxxxxxxxxx; oracledba@xxxxxxxxxxx; oracle-rdbms@xxxxxxxxxxxxxxx
Subject: 9i shared servers (dispatcher) hung
People could not connect via shared server - hung. So tried stopping the
dispatchers and restarting them. I did:
alter system shutdown immediate 'D000' ;
alter system shutdown immediate 'D001' ;
In alert log I see the following.
idle dispatcher 'D000' terminated, pid = (13, 1)
I do not see d001 stopping. If do a lsnrctl services it still shows d001.
If do:
ALTER SYSTEM SET DISPATCHERS=''(address=(host=10.20.7.11)(proto
=tcp))(dispatchers=2)'';
Then lsnrctl services shows d000, d001 and d002.
I ended up bouncing the database. I had to do a shutdown abort since shutdown
immediate hung - probably due to dispatcher d001 getting stuck. Any ideas on
why a dispatcher would get stuck?
Jeffrey Beckstrom
Database Administrator
Greater Cleveland Regional Transit Authority
1240 W. 6th Street
Cleveland, Ohio 44113
Other related posts: