BasicDataSource设置connection自动重连

近期项目使用SpringMVC,并配置DBCP BasicDataSource作为数据源。因特殊需求,web session的有效时间需要设置为很长,导致有可能DB connection会被mysql回收,所以需要配置DBCP可以在执行sql前检查connection的有效性,如已失效,希望能获得一个新的有效connection(自动重连)。

已有配置(最简化):

<!-- DataSource -->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

<property name="driverClassName" value="com.mysql.jdbc.Driver" />

<property name="url" value="${jdbc.url}" />

<property name="username" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

</bean>

只需添加如下一个新的属性即可,

<property name= "validationQuery" value="select 1" />  <!-- validate the connection before executing query, if it's invalid, the connect will be rebuild by DBCP -->

具体可参考Apache commons DBCP 配置 http://commons.apache.org/proper/commons-dbcp/configuration.html

猜你喜欢

转载自dearls.iteye.com/blog/2110985