oracle – 什么可以导致间歇性的ORA-12519(TNS:没有找到适当的处理程序)错误

前端之家收集整理的这篇文章主要介绍了oracle – 什么可以导致间歇性的ORA-12519(TNS:没有找到适当的处理程序)错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在Oracle 10数据库(使用Hudson作为持续集成服务器)前面,针对Weblogic 9运行Junit 4测试套件,有时候我们会在脚本拆卸期间遇到ORA-12519崩溃。但是,错误是非常间歇的:

>它通常发生在相同的Test类
>它不总是发生在相同的测试用例(有时它们通过)
>它不会发生相同数量的测试用例(从3-9任何地方)
>有时它不会发生,一切都通过

虽然我不能保证这不会发生在本地(当运行对同一个数据库,当然),我已经运行同一套的类多次没有问题。

有任何想法吗?

不知道这是否会是每个人的答案,但在一些挖掘之后,这是我们想出的。

错误明显是由于事实,监听器不接受连接,但为什么我们会得到那个错误,当其他测试可以连接好(我们也可以通过sqlplus连接没有问题)?问题的关键不是我们不能连接,而是间歇性

经过一番调查,我们发现在类安装过程中创建了一些静态数据,这将在测试类的生命周期保持开放连接,创建新的连接。现在,即使所有的资源正确地释放,当这个类超出范围(通过一个finally {}块,当然),在运行时,有一些情况下,这个类将吞下所有可用的连接(好,坏练习警报 – 这是单元测试代码,直接连接,而不是使用池,所以同样的问题不会发生在生产)。

修复是不让类静态并在类设置中运行,而是在每个方法的setUp和tearDown方法中使用它。

所以如果你在你自己的应用程序中收到这个错误,在那个坏男孩上拍一个分析器,看看你是否可能有连接泄漏。希望有帮助。

猜你在找的Oracle相关文章