Oracle 侦听器状态被阻止

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/253563/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 17:25:44  来源:igfitidea点击:

Oracle listener state blocked

oracleora-12519

提问by Eli Courtwright

I have a webpp which works fine when under a light load. However, when we run a lot of threads each with their own database connection, then we start getting the error

我有一个在轻负载下工作正常的 web 应用程序。但是,当我们运行很多线程时,每个线程都有自己的数据库连接,然后我们开始收到错误

ORA-12519: TNS:no appropriate service handler found

After looking online I found that running lsnrctl serviceswas a good diagnostic step, so I did that. The result for our service was

在网上查看后,我发现跑步lsnrctl services是一个很好的诊断步骤,所以我这样做了。我们服务的结果是

Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:130 refused:0 state:blocked
         LOCAL SERVER

The number of established connections is consistent with the number of threads. However, the state:blockedseems like a cause and/or symptom of this problem.

建立的连接数与线程数一致。但是,这state:blocked似乎是此问题的原因和/或症状。

So what's my next step? The max number of open sessions is 1024, which is more than enough, and there's no limit to the number of sessions per user. I ran this test after a reboot of the machine, and no other programs were connected. I'm really not sure what to try next, so any help will be greatly appreciated.

那么我的下一步是什么?最大打开会话数为1024,绰绰有余,每个用户的会话数没有限制。我在机器重启后运行了这个测试,没有连接其他程序。我真的不确定接下来要尝试什么,所以任何帮助将不胜感激。

EDIT: Upping the processesand sessionsparameters seemed to do the trick. In addition to finding Matthew's suggestion helpful, this emaildescribed my problem perfectly.

编辑:增加processessessions参数似乎可以解决问题。除了发现 Matthew 的建议很有帮助之外,这封电子邮件还完美地描述了我的问题。

回答by Matthew Watson

Have your checked your alert log it should tell you what is going wrong if oracle is running out of resources? Sounds like you may be out of processes,

您是否检查过您的警报日志,如果 oracle 资源不足,它应该告诉您出了什么问题?听起来你可能没有进程,

Run in sqlplus,

运行sqlplus

SQL> show parameter processes

it will show you how many processes oracle will allow. You may need to increase this a bit.

它将向您显示 oracle 允许的进程数。您可能需要增加一点。

If you have a metalink account, then check article 240710.1for more details.

如果您有 metalink 帐户,请查看文章240710.1以获取更多详细信息。