在Druid-1.0.27之前的版本,DruidDataSource建议使用TestWhileIdle来保证连接的有效性,但仍有很多场景需要对连接进行保活处理。在1.0.28版本之后,新加入keepAlive配置,缺省关闭。使用keepAlive功能,建议使用1.1.16或者更高版本
打开KeepAlive之后的效果
- 初始化连接池时会填充到minIdle数量。
- 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。
- 当网络断开等原因产生的由ExceptionSorter检测出来的死连接被清除后,自动补充连接到minIdle数量。
配置方法
通过JVM启动参数配置
- -Ddruid.keepAlive=true
通过Spring配置
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="keepAlive" value="true" />
</bean>
通过Spring配置connectionProperties
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="connectionProperties" value="keepAlive=true" />
</bean>