在Druid-1.0.27之前的版本,DruidDataSource建议使用TestWhileIdle来保证连接的有效性,但仍有很多场景需要对连接进行保活处理。在1.0.28版本之后,新加入keepAlive配置,缺省关闭。使用keepAlive功能,建议使用1.1.16或者更高版本

打开KeepAlive之后的效果

  • 初始化连接池时会填充到minIdle数量。
  • 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。
  • 当网络断开等原因产生的由ExceptionSorter检测出来的死连接被清除后,自动补充连接到minIdle数量。

配置方法

通过JVM启动参数配置

  1. -Ddruid.keepAlive=true

通过Spring配置

  1. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
  2. <property name="keepAlive" value="true" />
  3. </bean>

通过Spring配置connectionProperties

  1. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
  2. <property name="connectionProperties" value="keepAlive=true" />
  3. </bean>