2012-04-23 262 views
5

我有一些单元测试与Oracle-11g XE对话。独立运行的每个测试工作正常,但是当我运行它们,前几关,并试图建立数据库连接时,其余的失败,此错误:JDBC连接失败ORA-12516

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%失败。

回答

0

看看会议和V $参数工艺限制,同时也alert.log中和LISTENER.LOG 答案是在外面有

3

你可能需要增大PROCESSES参数的值。还要执行“lsnrctl servcies”命令以查看该服务是否显示为已阻止。我记得类似的问题,其中听众很聪明,并计算出服务请求的连接数。在PMON通知它之前,收听者不会了解断开连接。这可能是5或10分钟后。所以听众认为你有很多开放的联系,并决定积极主动,不再发布任何连接 - 直到PMON告知。如果您增加PROCESSES参数,您可能会碰到您在窗口中可能建立的连接数。

UPDATE:此链接描述它:https://forums.oracle.com/forums/thread.jspa?threadID=360226