tomcat数据源与hibernate和Timeout等待空闲对象异常

时间:2013-11-26 19:20:14

标签: java hibernate exception tomcat datasource

我正在使用 Tomcat Data-source with hibernate

<Resource 
auth="Container" 
driverClassName="com.mysql.jdbc.Driver" 
maxActive="8" maxIdle="8" maxWait="10000"
username="*****"  
name="jdbc/sakila" password="*****"
type="javax.sql.DataSource" 
url="jdbc:mysql://localhost/sakila"/>

和hibernate

<propertyname="hibernate.connection.datasource">java:comp/env/jdbc/sakila</property>

实施后我面临以下异常

java.util.NoSuchElementException: Timeout waiting for idle object

这个例外发生在晚上,当我在睡觉时:)当我早上去办公室时,我发现了这个例外。我认为这是tomcat提供的连接池异常?

请更新我!

这适合在hibernate中使用tomcat数据源吗?或者我们应该使用C3P0第三方连接轮询?

目前,寻找tomcate数据源的解决方案

1 个答案:

答案 0 :(得分:0)

池中的连接数会自动增长,直到达到maxActive。

根据Tomcat文档,maxActive为:

可以同时从此池分配的最大活动连接数。默认值为100

您严格限制同时数据库连接的最大数量为8。

我建议将此数字增加到至少50.然后开始监视池中的连接数。如果连接数量稳步增长,除了Web应用程序使用量的增长外,您可能会发生连接泄漏。如果您确认,则必须调查该泄漏。

与“过去的日子”不同,如果您通过Hibernate连接到数据库并使用Spring管理事务,则连接泄漏非常罕见。