现在的位置: 首页 > 综合 > 正文

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

2018年05月20日 ⁄ 综合 ⁄ 共 939字 ⁄ 字号 评论关闭

Proxool:

 
      

<!--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

 
     
重试间隔时间

抱歉!评论已关闭.