Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Sun Solaris 8 - Listener failed to start a dedicated server p
<FONT face=Arial color=#0000ff
size=2>hi jacques,
I have
a similar issue quite some time back.<SPAN
class=556483123-22052001>, when everything was fine at oracle level. Try
finding problem at unix level. like memory being less, heavy swapping.
In my case, it turned out to be unix memory problem. A reboot of unix
box solved it.
here
are some of options to check..
<FONT face=Arial color=#0000ff
size=2>
Here are some options for an intermittent
TNS-12500: Intermittent TNS-12500 errors are caused by a lack of
resources on the server. Finding which resource is depleted may be
difficult. 1. The TNS-12500 can be a result of the 'processes'
parameter in the init<sid>.ora file being too low. 2. If the
init.ora 'processes' parameter seems ok then you may need to increase the
Unix kernel parameters for the maximum number of processes or users (for
example, nproc or maxuprc). Check the manuals for the Unix operating
system for more information on these parameters. 3. Check that
you have adequate swap space. 4. Disable OTRACE. OTRACE is a tracing
feature that can cause many problems. OTRACE is enabled by default. To
disable OTRACE: a. Stop the Oracle database. b. Go to the
$ORACLE_HOME/otrace/admin directory. c. Delete all files with a '.dat'
extension. d. Restart the Oracle database.
Oracle
support recommenda this...5. Use the Multi-Threaded Server (MTS)
option. MTS will fix the problem since the listener does not spawn dedicated
server processes in this environment. MTS also cuts down on the amount
of resources being utilized by having connections threaded through
dispatchers and by having shared server processes read dispatcher requests
from queues. To invoke MTS: a. Stop the database b. Modify the
init<sid>.ora file to include these parameters:
mts_dispatchers="<protocol>,<number of dispatchers to
create>" mts_max_dispatchers=<max number of dispatchers>
mts_servers=<number of shared servers to start>
mts_max_servers=<max number of shared servers> mts_service=<SID
name> mts_listener_address=<address of the TNS listener> An
example of a working MTS configuration would be: mts_dispatchers="tcp,3"
mts_max_dispatchers=10 mts_servers=2 mts_max_servers=4
mts_service=ORCL mts_listener_address=
"(address=(protocol=tcp)(host=mars1)(port=1521))" Please note for
Oracle 8i the MTS configuration would be: mts_dispatchers =
"(protocol=tcp)(dis=2)" mts_max_dispatchers = 4 mts_servers = 4
mts_max_servers = 6 local_listener = "(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST=mars1)(PORT=1521)))" c. Restart the
database.
if
above options donot work....
check
following things...
Use the "truss" command to trace the system calls when you get the
ORA-12500. Example: truss -f -o error.log sqlplus
do you
have any 32 bit versions and 64 bit database on the same box...
<SPAN
class=556483123-22052001>
<SPAN
class=556483123-22052001>
<SPAN
class=556483123-22052001>rg
<SPAN
class=556483123-22052001>naren
<FONT face=Tahoma
size=2>-----Original Message-----From: eric harrington
[mailto:eharrington_at_ecora.com]Sent: Wednesday, May 23, 2001 11:05
AMTo: Multiple recipients of list ORACLE-LSubject: RE:
Sun Solaris 8 - Listener failed to start a dedicated server
p
<SPAN
class=639240322-22052001>Jacques,
<SPAN
class=639240322-22052001>
I've seen a similar
error with processes and Solaris memory structures. Someone mentioned
increasing SEMMNS, this helped in my situation, however you can try decreasing
the PROCESSES parameter temporarily (as low as possible) to test whether the
Solaris memory setup is an issue. There is a formula for sizing SEMMNS,
cannot currently find it.
<SPAN
class=639240322-22052001>
Good
luck!
<FONT face=Tahoma
size=2>-----Original Message-----From: root_at_fatcity.com
[mailto:root_at_fatcity.com]On Behalf Of Jacques
KilchoerSent: Tuesday, May 22, 2001 5:26 PMTo:
Multiple recipients of list ORACLE-LSubject: RE: Sun Solaris 8 -
Listener failed to start a dedicated server p
Thank you for the suggestions so far. <FONT
size=2>Rocky Welch suggesting increasing the "processes" parameter in the
init.ora I tried that with one of the 8.1.6
databases. The "processes" parameter was set to 50,
I increased it to 200, shut down that database, restarted the listener
(lsnrctl>stop and lsnrctl>start) and restarted the database. I still
got "ORA-12500: TNS:listener failed to start a dedicated server process"
when trying to connect to that database from the client.
John Kangaraj has suggested checking the number of
semaphores. I forgot to mention before that I had already looked at that
also (I've been bitten by semaphores before.) I counted 780 semaphores being
used (from ipcs) and 1024 being the maximum allowed (from /etc/system). (see
below)
I'm still new to Sun Solaris and I'm totally stumped. Does
anyone else have any other ideas? I really would prefer not running
multi-threaded server (MTS) if I don't have to, which was one of the
suggestions on Metalink.
Am I interpreting the available memory information
correctly? (see below) For physical memory, I think I see 4GB available and
622 MB being used. As far as swap, I see approx. 4GB available.