【发布时间】:2017-02-10 16:01:18
【问题描述】:
我有一个设置,其中 180 个作业尝试同时访问 oracle,即它们不会快速关闭连接,因为它们可能正在等待例如要打开的 ftp 连接。
从 oracle 中,我得到了错误:
Listener refused the connection with the following error:
ORA-12520, TNS:listener could not find available handler for requested type of server
我认为这是由于打开的连接过多。 这也会影响拒绝登录的应用程序的 GUI。
如何确定要同时执行的作业的安全数量?
我应该如何处理错误?我试图通过休眠和重试来处理它,但是这样做的唯一效果似乎是 TNS 侦听器总是饱和并且同时运行的作业数增加到 180。
【问题讨论】:
-
为什么要在作业运行之前打开与数据库的连接?在查询 Oracle 之前检查 FTP 连接是否可用,并且仅在 FTP 连接安全的情况下运行作业。
-
这是个好建议,虽然 ftp 服务器的连接数据来自数据库。
-
连接池可能是调节应用程序对数据库连接的使用的好主意。您当前的设置基本上是对您自己的数据库的 DoS 攻击。