数据库连接池的断开自动重联、失败恢复功能显得很重要,不知道目前主流的数据库连接池:C3P0,Proxool,BoneCP,Druid等支持如何?
我知道的:
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:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${dataSourceforSe.driverClassName}" />
<property name="jdbcUrl" value="${dataSourceforSe.url}"/>
<property name="user" value="${dataSourceforSe.username}"/>
<property name="password" value="${dataSourceforSe.password}"/>
<property name="minPoolSize" value="2"/>
<property name="maxPoolSize" value="20"/>
<property name="maxIdleTime" value="1800"/>
<property name="acquireIncrement" value="2"/>
<property name="maxStatements" value="0"/>
<property name="initialPoolSize" value="3"/>
<property name="idleConnectionTestPeriod" value="240"/>
<property name="acquireRetryAttempts" value="10"/>
<property name="breakAfterAcquireFailure" value="false"/> <!-- 网络故障恢复之后,pool能继续请求设为false -->
<property name="testConnectionOnCheckout" value="true"/>
</bean>
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
重试间隔时间
感觉 断开自动重联 功能比较耗性能,不知道有没有什么更好的办法可以实现?
转载:
http://www.oschina.net/question/59889_44927
分享到:
相关推荐
JAVA数据库连接池(C3P0,Druid,JNDI ,DBCP,Proxool,BoneCP) 源码包含各个数据库连接池的连接DEMO spring+mybatis+maven
本例演示c3p0 、dbcp 、proxool三种常用数据库连接池的用法及log4j2日志使用方法
NULL 博文链接:https://286.iteye.com/blog/1920417
在Spring3中配置数据源,包括DBCP,C3P0,Proxool,Bonecp主要的数据源,里面包含这些数据源的jar文件和依赖文件及配置文件。。 如Bonecp目前听说是最快的数据源,速度是传统的c3p0的25倍, bonecp.properties文件: ...
(C3PO,proxool,dbcp,bonecp)各个连接池的配置以及用法讲解
Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署...
NULL 博文链接:https://381324504-qq-com.iteye.com/blog/486480
NULL 博文链接:https://lanyan-lan.iteye.com/blog/509140
proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解
Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。 Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模...
Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。 Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模...
proxool数据库连接池实例源码,性能很不错的一个连接池,带监控功能可以方便检测数据库没有关闭的连接
proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回 收,超时的销毁 --> <house-keeping-sleep-time>90000</house-keeping-sleep-time> - <!-- 指因未有空闲连接可以分配而在队列中...
HIbernate连接池配置总结基于第三方c3p0和proxool
项目实用的proxool连接池配置文件,每个标签都有注释,可以直接拿来使用
三大连接池参数说明,是本人在网上查找后放在网上备份,希望也对你有用
proxool连接池使用详细说明,proxool连接池使用详细说明,proxool连接池使用详细说明。
proxool0.9.0RC3连接池的配置,怎么使用?这个就是详细的案例配置!