加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – 什么可以导致间歇性的ORA-12519(TNS:没有找到适当的

发布时间:2020-12-12 14:11:22 所属栏目:百科 来源:网络整理
导读:我们在Oracle 10数据库(使用Hudson作为持续集成服务器)前面,针对Weblogic 9运行Junit 4测试套件,有时候我们会在脚本拆卸期间遇到ORA-12519崩溃。但是,错误是非常间歇的: 它通常发生在相同的Test类 它不总是发生在相同的测试用例(有时它们通过) 它不会发
我们在Oracle 10数据库(使用Hudson作为持续集成服务器)前面,针对Weblogic 9运行Junit 4测试套件,有时候我们会在脚本拆卸期间遇到ORA-12519崩溃。但是,错误是非常间歇的:

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

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

有任何想法吗?

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读