C3P0,Proxool,BoneCP,Druid等连接池的断开自动重联功能

0 篇文章 0 订阅

数据库连接池的断开自动重联、失败恢复功能显得很重要,不知道目前主流的数据库连接池:C3P0,Proxool,BoneCP,Druid等支持如何?

我知道的:

Proxool:

?
1
2
3
4
5
6
7
8
9
10
<!--proxool 解决与数据库断开重连问题(houseKeepingTestSql为oracle的语法,其他数据库类似) -->
< property name = "houseKeepingTestSql" >
< value >select 1 from dual</ value >
</ property >
< property name = "testBeforeUse" >
< value >true</ value >
</ property >
< property name = "testAfterUse" >
   < value >true</ value >
</ property >

C3P0:

breakAfterAcquireFailure: false
        true表示pool向数据库请求连接失败后标记整个pool为block并close,就算后端数据库恢复正常也不进行重连,客户端对pool的请求都拒绝掉。false表示不会标记 pool为block,新的请求都会尝试去数据库请求connection。默认为false。因此,如果想让数据库和网络故障恢复之后,pool能继续请求正常资源必须把此项配置设为false 
testConnectionOnCheckout: false
         true表示在每次从pool内checkout连接的时候测试其有效性,这是个同步操作,因此应用端的每次数据库调用,都会先通过测试sql测试其有效性,如果连接无效,会关闭此连接并剔除出pool,并尝试从pool内取其他连接,默认为false,此特性要慎用,会造成至少多一倍的数据库调用。 
testConnectionOnCheckin: false
       true表示每次把连接checkin到pool里的时候测试其有效性,因为是个事后操作,所以是异步的,应用端不需要等待测试结果,但同样会造成至少多一倍的数据库调用。 
idleConnectionTestPeriod: 60
       C3P0会有一个Task检测pool内的连接是否正常,此参数就是Task运行的频率。默认值为0,表示不进行检测。 
acquireRetryAttempts: 10
       重试次数
acquireRetryDelay: 1000

       重试间隔时间

感觉 断开自动重联 功能比较耗性能,不知道有没有什么更好的办法可以实现?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值