Доза BoneCP (библиотека пула JDBC) поддерживает автоматическое переподключение в случае перезапуска сервера БД? Если так, как настроить это весной
Я использую пул соединений BoneCP JDBC в своем приложении, основанном на Spring. Интересно, будет ли он автоматически переподключаться к серверу БД в случае перезапуска сервера БД. На официальном веб-сайте BoneCP я не нашел никакой документации по такой поддержке. Я нашел его файл конфигурации по умолчанию "bonecp-default-config.xml" на странице концентратора Git, как упоминалось ниже
<!-- 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>
Здесь мои более конкретные вопросы
- Будет ли поддерживаться автоматическое переподключение или нет
- Если поддерживает, как установить эти свойства весной
Если поддерживает, как он себя ведет
3.1. Будет ли он повторяться до времени получения RetryAttempts, с задержкой на приобретение RetryDelayInM между каждой попыткой?
3.2. Как он ведет себя, когда полный цикл попыток приобретения не удается? будет ли он оставаться активным и будет пытаться снова получить Соединения в ответ на будущие запросы на Соединения?
Заранее спасибо.