ERROR JDBCExceptionReporter –> javax.resource.ResourceException: IJ000453:
Unable to get managed connection for java:jboss/datasources/myDB
08:12:05,928 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/mySoftware].[jsp]] (ajp–xx.255.0.yyy-8109-21) Servlet.service() for servlet jsp threw exception: javax.resource.ResourceException: IJ000655: No managed connections available within configured blocking timeout (30000 [ms])
at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:377) and etc.
.
所以,我有下一个数据源配置.在JBoss AS上:
<datasource jta="true" jndi-name="java:jboss/datasources/myDB" pool-name="ssbs-pssbs" enabled="true" use-ccm="true"> <connection-url>jdbc:postgresql://xx.255.0.yyy/myDatabase</connection-url> <driver-class>org.postgresql.Driver</driver-class> <driver>postgresql-jdbc4</driver> <pool> <min-pool-size>30</min-pool-size> <max-pool-size>150</max-pool-size> <prefill>true</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <user-name>tick</user-name> <password>tack</password> </security> <validation> <check-valid-connection-sql>SELECT 1</check-valid-connection-sql> <validate-on-match>false</validate-on-match> <background-validation>false</background-validation> </validation> <timeout> <blocking-timeout-millis>30000</blocking-timeout-millis> <idle-timeout-minutes>5</idle-timeout-minutes> </timeout> <statement> <share-prepared-statements>false</share-prepared-statements> </statement> </datasource>
在我的Postgres服务器中,我允许在500上的max_connection.
为什么我会得到这个例外?
解决方法
首先要检查的是pg_stat_activity中的所有内容的当前状态.这包括最近的查询和事务状态.在连接泄漏中,您可能会发现大量具有类似查询的IDLE连接.这些查询可以帮助您跟踪连接泄漏.另外在连接泄漏中,当问题开始时,它会一直持续到重新启动.
如果问题实际上太少的连接可用,那么您将看到很多ACTIVE连接.在这种情况下,会增加池中的连接数.同样在这种情况下,问题会间歇性地发生,然后自身就会出现.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。