数据库连接断开,数据库连接池报错问题

来源:互联网 发布:win7万能网络驱动下载 编辑:程序博客网 时间:2024/05/18 03:59
 

SHOW   VARIABLES   WHERE   Variable_name= 'wait_timeout '

 

 

这个是在mysql中查看数据库最大超时时间。

 

也就是说:比如SHOW   VARIABLES   WHERE   Variable_name= 'wait_timeout ' 查询出的value为28800(8小时*60分钟*60秒)

 

也就是8个小时,所以超过8小时,mysql就自动断开连接了。

 

这样问题就来了,在开发中用到数据库连接池的时候,数据库建立连接池以后。

 

如果超过8个小时,但是连接池不知道已经断开连接,所以就会报异常了。

 

解决方法:

1.加大mysql数据库连接的超时时间,这个可以修改。但是会给服务器增加负载。

2.就是连接池取得连接后进行验证,以dbcp连接池为例:

<!-- 连接池取得连接后进行的验证(包括取得对象(testOnBorrow),返回对象(testOnReturn),空闲时(testWhileIdle)) -->
  <property name="testOnBorrow">
   <value>true</value>
  </property>
  <property name="testOnReturn">
   <value>true</value>
  </property>
  <property name="testWhileIdle">
   <value>true</value>
  </property>
  <property name="validationQuery">
   <value>SELECT COUNT(*) FROM DUAL</value>
  </property>

 

用的是spring的连接方式,其他的连接池的配置方式大体类似。不做展开。

原创粉丝点击