码迷,mamicode.com
首页 > 数据库 > 详细

MySQL 8小时问题

时间:2015-07-05 23:41:00      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

在MySQL数据库中,默认情况下,如果一个连接的空闲事件超过 8 小时,将会在数据库端关闭这个连接,而数据源并不知道这个连接已经被数据库关闭,当将这个无用的连接交给Dao时,就会产生异常

 

在Spring中,如果采用DBCP配置数据源

如果采用的是DBCP的默认配置,不会产生 8 小时问题, 因为每次数据源在将连接给Dao前都会做检查,但这样影响效率

一种更好的方法是:

    <bean id="mysql_dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
          p:driverClassName="${driverClassName}"
          p:url="${url}"
          p:username="${username_mysql}"
          p:password="${password}"
            p:testOnBorrow="false"
            p:testWhileIdle="true"
            p:timeBetweenEvictionRunsMillis="27000000"
            p:validationQuery="select 1"/>
p:timeBetweenEvictionRunsMillis  以毫秒为单位,时间小于 8 小时,但是这个8小时也是可以在MySQL中通过 interactive-timeout参数进行配置的,所以在配置 p:timeBetweenEvictionRunsMillis,之前先需要知道 interactive-timeout 设置的值

MySQL 8小时问题

标签:

原文地址:http://www.cnblogs.com/sherrykid/p/4623199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!