我正在使用 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数据源的解决方案
答案 0 :(得分:0)
池中的连接数会自动增长,直到达到maxActive。
根据Tomcat文档,maxActive为:
可以同时从此池分配的最大活动连接数。默认值为100
您严格限制同时数据库连接的最大数量为8。
我建议将此数字增加到至少50.然后开始监视池中的连接数。如果连接数量稳步增长,除了Web应用程序使用量的增长外,您可能会发生连接泄漏。如果您确认,则必须调查该泄漏。
与“过去的日子”不同,如果您通过Hibernate连接到数据库并使用Spring管理事务,则连接泄漏非常罕见。