TNS-12537 error due to inappropriate OS parameter on AIX

A problem was reported by an maintenance engineer this morning. An appilicaiton program can not startup because error TNS-12537 occured.

By checking oracle's listener.log, I found the detailed error message:

TNS-12518: TNS:listener could not hand off client connection
 TNS-12549: TNS:operating system resource quota exceeded
  TNS-12560: TNS:protocol adapter error
   TNS-00519: Operating system resource quota exceeded
    IBM/AIX RISC System/6000 Error: 11: Resource temporarily unavailable


It should be becasue of insufficiency of some system resources so that oracle can't acuqire more resources to set up the client connection. But the system memory is still several GB free, and the parameters shown by the command ulimit -a are also large enough, and all file systems have enough free spaces. And then check the kernel paramters of the system, there is problem in the parameter maxuproc. Its value is the default value 128. It's too small for out project because this parameter denotes maximum number of processes allowed per user. 


After communicatinh with the engineer, I knew that they deployed the application on a new machine with maxuproc not modified.  Thus any clients can not connect oracle server when the number of processes of oracle user arrives 128.  The problem was solved after increasing the value of maxuproc.



To view the current value of maxuproc, use the lsattr command:

lsattr -E -l sys0|grep maxuproc

and to change the value of maxuproc, use the chdev command by root user, for example:

chdev -l sys0 -a maxuproc=1024

is to set the value of maxuproc to 1024.


个人分类: Unix/Linux Oracle
想对作者说点什么? 我来说一句