Dose BoneCP(JDBC池库)支持在DB服务器重启时自动重新连接?如果是这样,如何在春天配置它

时间:2016-12-21 04:55:09

标签: jdbc bonecp

我在基于Spring的应用程序中使用BoneCP JDBC连接池。我想知道在数据库服务器重启的情况下它是否会自动重新连接到数据库服务器。 我没有在BoneCP官方网站上找到任何关于此类支持的文档。 我发现它是Git中心页面中的默认配置文件“bonecp-default-config.xml”,如下所述

<!-- Sets the number of ms to wait before attempting to obtain a connection 
again after a failure. -->
        <property name="acquireRetryDelayInMs">7000</property>

<!-- After attempting to acquire a connection and failing, try to connect these many times before giving up. Default 5. -->
        <property name="acquireRetryAttempts">5</property>

使用此配置,它似乎支持自动重新连接,但不支持用户行为以及如何在spring配置文件中使用此属性。

我的弹簧配置如下

<bean id="refDBDatasource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
        <property name="driverClass" value="${jdbc.driverClassName}" />
        <property name="jdbcUrl" value="${refdb.jdbc.url}" />
        <property name="username" value="${refdb.jdbc.username}" />
        <property name="password" value="#{T(com.dhl.gcdb.dte.util.SecurityUtil).decriptPWD('${refdb.jdbc.password}')}" />
        <property name="idleConnectionTestPeriodInMinutes" value="#{T(com.dhl.gcdb.dte.util.CommonUtil).convertToInt('${refdb.idle.connection.test.period.in.minutes}')}" />
        <property name="idleMaxAgeInMinutes" value="#{T(com.dhl.gcdb.dte.util.CommonUtil).convertToInt('${refdb.idle.max.age.in.minutes}')}" />
        <property name="maxConnectionsPerPartition" value="#{T(com.dhl.gcdb.dte.util.CommonUtil).convertToInt('${refdb.max.connections.per.partition}')}" />
        <property name="minConnectionsPerPartition" value="#{T(com.dhl.gcdb.dte.util.CommonUtil).convertToInt('${refdb.min.connections.per.partition}')}" />
        <property name="partitionCount" value="#{T(com.dhl.gcdb.dte.util.CommonUtil).convertToInt('${refdb.partition.count}')}" />
        <property name="acquireIncrement" value="#{T(com.dhl.gcdb.dte.util.CommonUtil).convertToInt('${refdb.acquire.increment}')}" />
        <property name="statementsCacheSize" value="#{T(com.dhl.gcdb.dte.util.CommonUtil).convertToInt('${refdb.statements.cache.size}')}" />

    </bean>

我的更具体的问题是

  1. 是否支持自动重新连接
  2. 如果支持如何在spring中设置该属性
  3. 如果支持,它的行为方式

    3.1。它会重新尝试acquireRetryAttempts次,每次尝试之间都会延迟acquireRetryDelayInMs吗?

    3.2。一轮完整的收购尝试失败后,它的表现如何?将 它保持活跃状态​​,并将再次尝试获取Connections 对未来连接请求的响应?

  4. 提前致谢。

0 个答案:

没有答案