标签:
在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 设置的值
标签:
原文地址:http://www.cnblogs.com/sherrykid/p/4623199.html