今天测试人员在使用LoadRunner对oracle db进行压力测试时提示ORA-12519错误,错误内容如下:
Error: System.err: java.sql.SQLException: Listener refused the connection with the following error:ORA-12519, TNS:no appropriate service handler foundThe Connection descriptor used by the client was:10.0.65.104:1521:sany1
测试人员在LoadRunner中编写了一个带java程序的脚本,脚本的内容是通过java连接oracle数据库,并以某个特定的用户执行一个sql查询语句,然后退出会话,接着又再进行第二次连接,一直循环。当并发用户数达到10之后就开始抱上述错误。
于是我根据ORA-12519错误在google中查到了yangtingkun大牛关于这个错误的论述:
根据Oracle文档,SESSIONS和TRANSACTIONS的初始化参数应该源于PROCESSES参数,根据默认设置SESSIONS =PROCESSES * 1.1 + 5。
但是目前SESSIONS的设置达到了600,而PROCESSES的设置没有改变,仍然为150,导致了过多的用户会话连接到Oracle上时,Oracle没有足够的后台进程来支持这些会话。
详细的问题描述可以参考metalink的文档:Doc ID: Note:240710.1。解决方法很简单,直接设置合适的PROCESSES产生就可以了。
当前instance中sessions设置为800,processes设置为500,于是我将processes设置为900,之后让测试人员继续 进行压力测试,这是并发连接数达到50也没有再报错,这是回到oracle中查询到v$bgprocess中的后台进程数达到了590,这也再次证明了当时报ORA-12519是由于processes这个参数设置不满足当前压力的需求而导致的。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20801486/viewspace-695512/ ,如需转载,请注明出处,否则将追究法律责任。