Druid配置參數(shù)詳解-testOnReturn
Druid是一個由阿里開源的數(shù)據(jù)庫連接池,Druid的配置非常豐富,但是設(shè)置不當(dāng)會對生產(chǎn)環(huán)境造成嚴(yán)重影響,網(wǎng)上Druid的資料雖多,但大部分都是互相復(fù)制粘貼,有很多不準(zhǔn)確甚至完全錯誤的描述,Druid已經(jīng)開源很久,而且作者WenShao的工作重心也已經(jīng)不在Druid上,有些功能估計他自己都不太了解了。本系列將從源代碼的角度分析Druid目前的最新版本(1.1.21)各個常用的配置項的具體含義以及是怎么起作用的。
畫外音:目前Druid在開源中國舉辦的2019年度最受歡迎中國開源軟件中排名第7名,支持Druid的朋友可以去投票哇。2019年度最受歡迎中國開源軟件
testOnReturn是什么意思?
testOnReturn:如果為true(默認(rèn)false),當(dāng)應(yīng)用使用完連接,連接池回收連接的時候會判斷該連接是否還可用。
testOnReturn什么時候會用到?
當(dāng)連接使用完,調(diào)用commit或者rollback方法后,連接池會回收該連接,該參數(shù)主要在DruidDataSource的recycle方法中用到
if (testOnReturn) {
boolean validate = testConnectionInternal(holder, physicalConnection);
if (!validate) {
JdbcUtils.close(physicalConnection);
destroyCountUpdater.incrementAndGet(this);
lock.lock();
try {
activeCount--;
closeCount++;
} finally {
lock.unlock();
}
return;
}
}
連接池是如何判斷連接是否有效的?
判斷連接是否可用同testOnBorrow
Druid配置參數(shù)詳解-testOnBorrow