У меня есть брокер ActiveMQ, работающий в качестве службы Windows.Он использует jdbcPersistenceAdapter с источником данных Oracle и универсальным пулом соединений Oracle (UCP).
Когда база данных не работает (из-за проблем с сетью или планового обслуживания), служба Windows ActiveMQ полностью закрывается,Это, конечно, делает брокера недоступным даже после восстановления базы данных.
Я пробовал проверку соединения в UCP, DBCP с проверкой соединения и даже источник данных MySQL без какого-либо успеха.Служба завершает работу в течение 30 секунд после сбоя базы данных (я полагаю, это потому, что значение по умолчанию cleanupInterval составляет 30 секунд).
Есть ли способ предотвратить отключение службы Windowsвниз и заставить его ждать доступности базы данных?Любая помощь с благодарностью.
Вот моя текущая конфигурация из activemq.xml:
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#oracle-ds"/>
</persistenceAdapter>
<bean id="oracle-ds" class="oracle.ucp.jdbc.PoolDataSourceFactory"
factory-method="getPoolDataSource" p:URL="jdbc:oracle:thin:@localhost:1521:amq"
p:connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource"
p:validateConnectionOnBorrow="true" p:user="appuser" p:password="userspassword" />