Skip to content

KeepAlive_cn

温绍锦 edited this page Jan 26, 2020 · 4 revisions

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

打开KeepAlive之后的效果

  1. 初始化连接池时会填充到minIdle数量。
  2. 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。
  3. 当网络断开等原因产生的由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>
Clone this wiki locally