I am using oracle 11g database and application deployed on weblogic 12.2.1 while I tried to access my application today, I faced an issue as "Listener refused the connection with the following error:

ORA-12516, TNS:listener could not find available handler with matching protocol stack".

Verified the process parameter limit which was almost near the max limit so I altered the process value and increment it to 500 using the below alter command:

alter system set processes=500 scope=spfile;

Now, everything is fine. But I provided the process count on a vague idea.

My question is:

  1. How do I decide the processes count. Is that based on my user count?
  2. Do oracle have any calculation method for this or any other dependency?
  • 4
    This is completely dependent on your hardware, application, business requirements etc etc. Not really answerable – Philᵀᴹ Oct 25 '16 at 13:14

Yes, it depends on your user count. But not only that, it also depends on which way your users connect to the database and the number of background processes your instance requires.

There are basically two types of server processes that services user processes (client processes): dedicated server process, where there is an one-to-one mapping between user process and server process, and shared server process, where, like the name suggests, a server process can be shared between two or more user processes.

If your application (client) connects directly to the Oracle database, it will spawn a dedicated server process to handle its requests. If your application connects to a dispatcher, then you are using one of many shared processes to handle your requests.

Basically, if you use shared server connections you can service many users with fewer processes, but you may have a performance penalty. More information about dedicated and shared server processes can be found at: https://docs.oracle.com/cd/E11882_01/server.112/e25494/manproc.htm#ADMIN11166

Also, please beware that what prevents you from connecting to an instance is reaching the SESSION limit, which is a derived metric from the number of processes:

sessions =  (1.5 * PROCESSES) + 22

Since every login requires a session, it's the sessions parameter that actually determines the number of concurrent users on the instance. Please refer to the following url for more details: https://docs.oracle.com/cd/E18283_01/server.112/e17110/initparams229.htm

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.