Link to home
Start Free TrialLog in
Avatar of Pradeep Siriwardana
Pradeep SiriwardanaFlag for Singapore

asked on

Question about Oracle Database "ORA-00020: maximum number of process 1000 exceeded"

Hi Experts, Today we received a Alert from our Oracle Database by saying "maximum number of process 1000 exceeded". Once I checked Oracle Alert log I noticed below error was there.

"ORA-00020: maximum number of process 1000 exceeded"

(1). May I know the possible all reasons for this error ?
(2). And we are using Weblogic as midleware. How do i think about this ORA-00020 error with Weblogic level ?

Thank You
Avatar of Naitik Gamit
Naitik Gamit
Flag of India image

The ORA-00020 is a serious production error because a user cannot connect.
 
The ORA-00020 is caused by two things:  

1->Disconnected processes:  Rogue “zombie” connections  to Oracle that are idle (not working).  To fix this, use the ALTER SYSTEM KILL command.  You may also need to kill session at the OS level with the KILL -9 or the ORAKILL command.  

2->Too few process buckets:  Oracle limits the number of connected processes with the processes parameter, and you may get the ORA-00020 error as the natural result in growth of system usage.

To fix this, increase the processes parameter, usually doubling the value to allow for future growth.  




The OERR command shows these details for the ORA-00020 error:

ORA-00020: maximum number of processes (string) exceeded

Cause: All process state objects are in use.  

Action: Increase the value of the PROCESSES initialization parameter

Simply increase your processes parameter and you are all set!  
Avatar of Pradeep Siriwardana

ASKER

Hello Naitik Gamit,

Thank You very much for your clear answer.
I need to get little bit more understanding about 1st reason.

In there, you have mentioned that
1st Point : "ALTER SYSTEM KILL command" can be used kill the idle (zombie) processes.
2nd Point : And later you have mentioned after that "we may need to kill sessions at OS level as well"

My Questions are,
(1). Does it mean,  we need to kill those processes from both level DB & OS  & is it  Compulsory ?
(2). Once server is shared for multiple databases, How do we identify the idle processes which related to the issue in OS Level ?

Thank You in advance,
Pradeep.
ASKER CERTIFIED SOLUTION
Avatar of Naitik Gamit
Naitik Gamit
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of slightwv (䄆 Netminder)
slightwv (䄆 Netminder)

Killing sessions can be dangerous and should only be done as a last resort.

Exceeding 1000 processes can just be normal for your system.  I would start by increasing the processes parameter to more that what is expected by the applications using the database.