【Druid源码阅读】8. 对于连接的管理

博客围绕Druid如何管理连接展开,介绍了通过testOnBorrow、testWhileIdle、testOnReturn几个关键参数控制。testOnBorrow在获取连接时测试,testWhileIdle用空闲时间验证,testOnReturn在归还连接时测试。最终建议关闭testOnBorrow和testOnReturn,打开testWhileIdle。

目录

testOnBorrow

testWhileIdle

testOnReturn

结论


第6篇中,分析了如何获取连接,那获取连接后,Druid 是如何管理这些连接的呢?

可以先给结论,是通过几个关键参数来控制的

testOnBorrow
testOnReturn
testWhileIdle

testOnBorrow

首先看 testOnBorrow,从字面理解,是从连接池中获取连接时,要测试连接是否可用。下面是代码中使用这个属性的几处地方:

1179 和 1193 行,是在 validationQueryCheck() 方法中使用的,这个方法是判断是否正确设置了验证连接可用性相关的参数,即如下参数:

testOnBorrow
testOnReturn
testWhileIdle
validConnectionChecker
validationQuery

高亮的 1452 行是个关键,在 DruidDataSource#getConnectionDirect(long maxWaitMillis) 方法中:

if (testOnBorrow) {
    boolean validate = testConnectionInternal(poolableConnection.holder, poolableConnection.conn);
    if (!validate) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("skip not validate connection.");
        }

        discardConnect
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值