Spring 我在等待空闲对象时收到池错误超时
我看见了 但我不知道 原因是什么Spring 我在等待空闲对象时收到池错误超时,spring,tomcat,Spring,Tomcat,我看见了 但我不知道 原因是什么 提前感谢…此异常表示池管理器无法生成到等待请求者的可行连接,并且maxWait已通过,因此触发超时。有几种潜在原因,但通常分为两大类: 数据库已关闭或无法访问。这可能是因为您忘记启动它,或者它崩溃,或者您与数据库之间的网络停止工作。但基本上,池无法提供有效的新连接,因此请求者等待新连接的时间超过了超时时间,并已放弃。这通常是不太可能发生的情况,因为发生这种情况时,您通常会看到其他错误 连接池(设置为100 max active)没有连接。这可能是由于高需求量造成
提前感谢…此异常表示池管理器无法生成到等待请求者的可行连接,并且maxWait已通过,因此触发超时。有几种潜在原因,但通常分为两大类:
另外,您可能需要在Tomcat中启用JMX,以便JConsole JMX监控正常工作。我正在使用hibernate。使用后是否需要关闭连接。我认为hibernate会处理好它。根据您使用hibernate的方式,它应该为您管理连接。但是,我仍然认为您需要调查我上面概述的潜在原因。如果它工作了一段时间,然后停止,那么可能是泄漏。如果它在轻负载下工作,但在重负载下会断开,则可能是池的大小。如果它不起作用,可能是数据源连接设置不正确。无论如何,在您试图消除某些潜在原因之前,您不会知道。如果您使用hibernate事务,则无需关闭连接。连接将在交易结束时关闭。我面临同样的问题。按照建议,我将Jconsole连接到tomcat。我正在使用Java5。还有Tomcat 5。但是请建议我如何监控连接池到jconsole或任何这样的指南或链接,以帮助我弄清楚。您可以发布您的服务器连接maxThread计数吗?服务器级别和jdbc级别的最大线程数之间的比率是多少?
<Resource name="jdbc/name" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql:url?autoReconnect=true"/>
SQLState: null
[2013-12-05 14:13:06,156]ERROR069688[http-8080-10] - org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:78) -
Cannot get a connection, pool error Timeout waiting for idle object