JBoss 5.2应用程序服务器日志中填充了数千个以下异常:
Caused by: javax.resource.ResourceException: Unable to get managed connection for jdbc_TestDB
at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:441)
at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:424)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:496)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:96)
... 9 more
Caused by: javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] )
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:311)
at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:689)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:404)
... 13 more我已经去掉了异常的第一部分,这基本上是我们内部的JDBC包装器代码,它试图从池中获得一个DB连接。
在Oracle DB端,我运行了以下查询:
select resource_name, current_utilization, max_utilization, limit_value
from v$resource_limit
where resource_name in ('sessions', 'processes');这产生了输出:
RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION LIMIT_VALUE
processes 1387 1500 1500
sessions 1434 1586 2272鉴于达到了1500个进程的限制,这会导致我们遇到的JBoss异常吗?我也一直在调查连接泄漏的可能性,但到目前为止还没有发现任何证据。
这里推荐的行动方案是什么?简单地增加限制是一个有效的解决方案吗?
发布于 2016-09-06 18:53:26
嗯,很奇怪。有没有可能,JBOSS中的异常包装隐藏了最初的错误?您应该会得到一些文本以ORA-开头的sql异常。也许您的JDBC包装器不能正确处理错误。
建议的操作是:
Oracle v$session,尤其是通过v$sql将STATUS、LAST_CALL_ET、SQL_ID、Oracles sql_id(prev_sql_id)列到sql_text中。< code >H115如果您的应用程序存在连接泄漏,sql_id和pred_sql_id可能会将您指向源代码中最后使用连接的位置(即,连接泄漏的位置)。
发布于 2016-09-06 19:13:48
通常,当max_utilization获得进程的值时,侦听器将拒绝到数据库的新连接。您可以在警报日志中看到与其相关的错误。为了在数据库端解决这个问题,你应该增加进程参数。
https://stackoverflow.com/questions/39346734
复制相似问题