我们正在Oracle 10数据库(使用Hudson作为连续集成服务器)前面运行针对Weblogic 9的Junit 4测试套件,有时我们会在脚本删除期间遇到ORA-12519崩溃。然而,这个错误是非常间歇性的:
<代码>F29
虽然我不能保证这种情况不会在本地发生(当然,在同一个数据库上运行时),但我已经多次运行同一个类,没有问题。
有什么想法吗?
发布于 2008-10-15 23:34:19
不知道这是否是每个人的答案,但经过一番挖掘,我们得出了如下结论。
该错误显然是由侦听器不接受连接造成的,但是当其他测试可以很好地连接(我们也可以通过sqlplus连接没有问题)时,我们为什么要得到这个错误呢?问题的关键不是我们不能连接,而是间歇性
经过一些调查后,我们发现在类设置期间创建了一些静态数据,这些数据将在测试类的生命周期内保持打开的连接,并在测试类运行时创建新的连接。现在,即使当这个类超出作用域(当然是通过一个最后的{}块)时,所有的资源都被正确地释放了,但是在运行过程中,这个类会吞噬所有可用的连接(好,错误的实践警告--这是直接连接而不是使用池的单元测试代码,所以在生产中不会发生同样的问题)。
修复方法不是使该类静态并在类设置中运行,而是在per方法setup和tearDown方法中使用它。
所以,如果你在自己的应用程序中出现了这个错误,就给那个坏小子打个电话,看看你是否有连接泄漏。希望这能有所帮助。
发布于 2012-03-05 04:58:38
对于类似的错误,我发现的另一个解决方案是增加找到的服务处理程序的数量。(此错误的实例是由Weblogic连接池中的太多连接引起的。)
SQL*Plus并以SYSTEM身份登录。您应该知道在安装Oracle XE.alter system set processes=150 scope=spfile;。中生效。
从这里:
http://www.atpeaz.com/index.php/2010/fixing-the-ora-12519-tnsno-appropriate-service-handler-found-error/
发布于 2016-03-31 07:03:09
我也有同样的问题,我寻找答案很多地方。我得到了许多类似的答案来更改流程/服务处理程序的数量。但我想,如果我忘了把它复位呢?
然后,在每次Thread.sleep()之后,我尝试使用connection.close();方法。
我不知道怎么做,但至少对我有用。
如果有人想试一试并弄清楚它是如何工作的,那么请继续。我也想知道它,因为我是一个编程世界的初学者。
https://stackoverflow.com/questions/205160
复制相似问题