首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么会导致间歇性ORA-12519 (TNS:没有找到适当的处理程序)错误?

什么会导致间歇性ORA-12519 (TNS:没有找到适当的处理程序)错误?
EN

Stack Overflow用户
提问于 2008-10-15 15:25:49
回答 5查看 121.9K关注 0票数 47

我们正在Oracle 10数据库(使用Hudson作为连续集成服务器)前面运行针对Weblogic 9的Junit 4测试套件,有时我们会在脚本删除期间遇到ORA-12519崩溃。然而,这个错误是非常间歇性的:

  • --通常发生在相同的测试类
  • 中--并不总是发生在相同的测试用例(有时它们通过)
  • 上--对于相同数量的测试用例(3-9之间的任何地方)--
  • --有时根本不发生,一切都通过了

<代码>F29

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

有什么想法吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-10-15 23:34:19

不知道这是否是每个人的答案,但经过一番挖掘,我们得出了如下结论。

该错误显然是由侦听器不接受连接造成的,但是当其他测试可以很好地连接(我们也可以通过sqlplus连接没有问题)时,我们为什么要得到这个错误呢?问题的关键不是我们不能连接,而是间歇性

经过一些调查后,我们发现在类设置期间创建了一些静态数据,这些数据将在测试类的生命周期内保持打开的连接,并在测试类运行时创建新的连接。现在,即使当这个类超出作用域(当然是通过一个最后的{}块)时,所有的资源都被正确地释放了,但是在运行过程中,这个类会吞噬所有可用的连接(好,错误的实践警告--这是直接连接而不是使用池的单元测试代码,所以在生产中不会发生同样的问题)。

修复方法不是使该类静态并在类设置中运行,而是在per方法setup和tearDown方法中使用它。

所以,如果你在自己的应用程序中出现了这个错误,就给那个坏小子打个电话,看看你是否有连接泄漏。希望这能有所帮助。

票数 42
EN

Stack Overflow用户

发布于 2012-03-05 04:58:38

对于类似的错误,我发现的另一个解决方案是增加找到的服务处理程序的数量。(此错误的实例是由Weblogic连接池中的太多连接引起的。)

  • 运行SQL*Plus并以SYSTEM身份登录。您应该知道在安装Oracle XE.
  • 时使用了什么密码,在SQL*Plus或任何对SQL友好的IDE中运行命令alter system set processes=150 scope=spfile;
  • 非常重要:重新启动数据库,使更改在SPFILE.

中生效。

从这里:

http://www.atpeaz.com/index.php/2010/fixing-the-ora-12519-tnsno-appropriate-service-handler-found-error/

票数 33
EN

Stack Overflow用户

发布于 2016-03-31 07:03:09

我也有同样的问题,我寻找答案很多地方。我得到了许多类似的答案来更改流程/服务处理程序的数量。但我想,如果我忘了把它复位呢?

然后,在每次Thread.sleep()之后,我尝试使用connection.close();方法。

我不知道怎么做,但至少对我有用。

如果有人想试一试并弄清楚它是如何工作的,那么请继续。我也想知道它,因为我是一个编程世界的初学者。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/205160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档