I have an Oracle Server 11g that we use for integration tests. For some reason, the processes count [select count(*) from v$process;
] keeps increasing up to the limit, causing ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
error when the limit is reached. I tried increasing the processes limit to 300. But after a while the database will still reach this limit and have the same error. When I tried querying
select program, count(*) from v$process group by program order by count(*) desc;
I found that almost all of the processes are owned by Oracle.exe (SHAD)
PROGRAM COUNT(*)
---------------------------------------------------------------- ----------
ORACLE.EXE (SHAD) 135
ORACLE.EXE (J001) 1
ORACLE.EXE (Q001) 1
ORACLE.EXE (PMON) 1
ORACLE.EXE (GEN0) 1
PSEUDO 1
ORACLE.EXE (LGWR) 1
ORACLE.EXE (Q000) 1
ORACLE.EXE (W000) 1
ORACLE.EXE (DBRM) 1
ORACLE.EXE (DBW0) 1
ORACLE.EXE (DIAG) 1
ORACLE.EXE (DIA0) 1
ORACLE.EXE (MMAN) 1
ORACLE.EXE (SMON) 1
ORACLE.EXE (RECO) 1
ORACLE.EXE (SMCO) 1
ORACLE.EXE (W001) 1
ORACLE.EXE (J000) 1
ORACLE.EXE (PSP0) 1
ORACLE.EXE (MMNL) 1
ORACLE.EXE (D000) 1
ORACLE.EXE (S000) 1
ORACLE.EXE (CJQ0) 1
ORACLE.EXE (MMON) 1
ORACLE.EXE (QMNC) 1
ORACLE.EXE (VKTM) 1
ORACLE.EXE (CKPT) 1
Any idea what's causing this process spam and how to fix it? Note, I found many users reporting the issue in the internet, see for example:
- https://forums.oracle.com/forums/thread.jspa?threadID=839381
- https://forums.oracle.com/forums/thread.jspa?threadID=969909
- https://forums.oracle.com/forums/thread.jspa?threadID=2409737
But so far I haven't found any solution or even a sensible theory
Best Answer
If you're on Windows and have DCD (dead connection detection) enabled then this could be relevant to your case. There is a note on Oracle support that talks about poor implementation of DCD on windows leaving behind a bunch of shadow processes. Without going into details as I don't think I can republish that info here, the solution was to disable DCD. So keep a monitor on the number of shad processes and disable DCD in sqlnet.ora. Fairly quick and painless to test if that is the cause..