c3p0和mysql使用超时

mysql对数据库的链接有一定的维护时间,默认的是8个小时,同样c3p0对于空闲链接的销毁也有时间限制,如果c3p0的时间设置大于mysql的wait_timeout或是interactive_timeout,当客户端使用数据库链接时,c3p0直接抛出这个链接,但是数据库已经断开的这个链接,从而导致出异常。

解决方案:

1 将c3p0的空闲链接超时设置小于mysql的默认cpool.maxIdleTime=60*60*7

2 定时使用c3p0的空闲链接

cpool.preferredTestQuery='select 1'

cpool.idleConnectionTestPeriod=18000

cpool.testConnectionOnCheckout=true

猜你喜欢

转载自lovewen-2004.iteye.com/blog/2107380