我有一些与Oracle-11g XE对话的单元测试。单独运行每个测试都很好,但是当我全部运行它们时,前几个测试都通过了,其余的在尝试创建DB连接时都失败了,并显示以下错误:
ORA-12516, TNS:listener could not find available handler with matching protocol stack无论我以什么顺序运行测试,都会发生这种情况,所以问题似乎是我正在耗尽DB服务器上的某种资源。
我试着缓慢地运行测试,并在运行过程中检查使用的连接数:
select count(*) from v$session;会话数始终在26和28之间徘徊,限制设置为49,所以我不确定问题是什么。
如果我快速运行测试,问题也会变得更糟。当我在没有任何额外延迟的情况下运行它们时,90%会失败,并显示以下错误。我在tearDown()中设置了睡眠,以便更好地了解发生了什么,在这种情况下,只有大约10%的人失败了。
发布于 2012-04-24 05:15:51
您可能需要增加进程参数的值。还要执行"lsnrctl servcies“命令,以查看服务是否显示为阻塞。我回想起一个类似的问题,监听器很聪明,正在计算为服务请求的连接数量。监听程序直到PMON通知它时才知道断开连接的情况。这可能是5到10分钟后的事。因此,监听者认为你有很多开放的连接,并决定积极主动,不再分发连接,-until告诉它不是这样。如果增加进程参数,则可以将自己增加到可能在窗口中建立的连接数。
更新:此链接描述它:https://forums.oracle.com/forums/thread.jspa?threadID=360226
发布于 2012-04-24 04:43:18
查看v$parameters以及alert.log和listener.log中的会话和进程限制,答案就在某个地方
发布于 2016-03-21 03:15:05
几年后。
请参阅:http://www.eddgrant.com/blog/2010/01/20/increasing-the-number-of-processes-in-oracle-xe.html
在Sql Plus中运行它解决了我的问题:
SQL> alter system set sessions=300 scope=spfile;
SQL> alter system set processes=300 scope=spfile;https://stackoverflow.com/questions/10281523
复制相似问题