Spring mvc + hibernate dbcp长时间访问时Could not open Hibernate Session for transaction
spring mvc + hibernate +mysql使用dbcp连接池。长时间间隔访问时报:
Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin failed
Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该 connection。connections如果空闲超过8小时,Mysql将其断开,而DBCP并不知道该connection已经失效,如果这时有 Client请求connection,DBCP将该失效的Connection提供给Client,将会造成上面的异常。
网上查询结果
timeBetweenEvictionRunsMillis和minEvictableIdleTimeMillis一起使用,每
timeBetweenEvictionRunsMillis毫秒秒检查一次连接池中空闲的连接,把空闲时间超过minEvictableIdleTimeMillis毫秒的连接断开,直到连接池中的连接数到minIdle为止
minEvictableIdleTimeMillis 连接池中连接可空闲的时间,毫秒。
dbcp配置中加入以上两个参数,正在试验中。2012年11月14日
作者:很有意思
出处:http://www.cnblogs.com/chen-lei
关于作者:扛过枪,没机会打仗,现为程序员集团军一名现役程序员
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
如有问题,可以通过chenlei65368@sohu.com 联系我,非常感谢。