If your maximum number of process and/or sessions exceeds the limit ,oracle will throws following errors
ORA-12516: TNS:listener could not find available handler with matching protocol stack
ORA-00020: maximum number of processes (%s) exceeded .
When this occurs, the service handlers for the TNS listener become "Blocked" and no new connections can be made.
Below query gives present allocation
SQL>select name,value from v$parameter where name in ('processes','sessions','transactions');
Below quey gives current number of process
SQL>select count(*) from v$process;
Below quey gives current number of session
SQL>select count(*) from v$session;
Below quey gives current number of transaction
SQL>select count(*) from v$transaction;
General formula to calculate process,session and transaction
PROCESSES = 40 to Operating System Dependant
SESSIONS = (1.1 * PROCESSES) + 5
TRANSACTIONS = 1.1 * SESSIONS
ie For increasing process parameter you should consider increasing sesson and transactions parameter as well.
if we need to change do the following ,
SQL>alter system set processes = 1000 scope = spfile;
SQL>alter system set sessions = 1105 scope = spfile;
SQL>alter system set transactions = 1215 scope = spfile;
SQL>shutdown immediate;
SQL>startup;
For checking the current utilization , maximum utilization of process and session
SQL>SELECT upper(resource_name) as resource_name,current_utilization,max_utilization,initial_allocation FROM v$resource_limit WHERE resource_name in ('processes', 'sessions');
ORA-12516: TNS:listener could not find available handler with matching protocol stack
ORA-00020: maximum number of processes (%s) exceeded .
When this occurs, the service handlers for the TNS listener become "Blocked" and no new connections can be made.
Below query gives present allocation
SQL>select name,value from v$parameter where name in ('processes','sessions','transactions');
Below quey gives current number of process
SQL>select count(*) from v$process;
Below quey gives current number of session
SQL>select count(*) from v$session;
Below quey gives current number of transaction
SQL>select count(*) from v$transaction;
General formula to calculate process,session and transaction
PROCESSES = 40 to Operating System Dependant
SESSIONS = (1.1 * PROCESSES) + 5
TRANSACTIONS = 1.1 * SESSIONS
ie For increasing process parameter you should consider increasing sesson and transactions parameter as well.
if we need to change do the following ,
SQL>alter system set processes = 1000 scope = spfile;
SQL>alter system set sessions = 1105 scope = spfile;
SQL>alter system set transactions = 1215 scope = spfile;
SQL>shutdown immediate;
SQL>startup;
For checking the current utilization , maximum utilization of process and session
SQL>SELECT upper(resource_name) as resource_name,current_utilization,max_utilization,initial_allocation FROM v$resource_limit WHERE resource_name in ('processes', 'sessions');
No comments:
Post a Comment