连接池超时解决办法

时间:2022-09-20 07:43:09

最近折腾了jpa后,接下来就会发现一个大的问题,就是mysql在连接8个小时后,会自动的释放连接。这个时候持久层用的连接池就会报错了,头疼的要死,后来找了一堆资料,看了下,只有一个办法,设置数据库连接的闲置时间,然后在连接池这一层做反闲置设置,意思就是在连接闲置以前先释放掉这个连接。就不会出现问题了。

 

我用的连接池是c3p0

 

第一步是修改数据库的闲置时间:

 

我这里用的是mysql

那么直接修改或者增加 MySQL 的 wait_timeout 属性的值。
修改/etc/mysql/my.cnf文件,在 [mysqld] 节中设置:

# Set a connection to wait 8 hours in idle status.
wait_timeout = 86400

 

 

 

第二步设置c3p0

 

基本上就是这几条

以上设置完成以后,就应该没啥问题了,我现在还在测试中,明天就有结果了,到时候在更新blog

 

其他的连接池也应该有类似的问题,可以参照一下 :)

 

第二天访问的时候果然没有出现连接池的错误了,呵呵,不错。