2016-05-09 7 views
0

У меня есть управляющие соединения DBCP для данного h2 DB, которые в ночное время нужно отключить и вернуть обратно. Время, затраченное на это довольно быстро, за это время я хочу приостановить DBCP из кредитных подключений, а затем, когда я и закончу возобновление пула.Могу ли я приостановить DBCP при выполнении обслуживания БД?

Я могу развлекаться, используя другой пул соединений; использование с c3p0 и HikariCP действительно вызывало проблемы в другом месте.

Чего я хочу добиться - это приостановить кредитование, закрыть БД, а затем заменить файлы БД новыми копиями, а затем возобновить пул, который должен автоматически перезапустить h2 db.

ответ

0

BoneCP может иметь функцию, которая разрешает этот тип расширенного разъединения при перезапуске базовой базы данных, поскольку она может воспроизводить транзакции, если соединение терпит неудачу, но это будет означать, что приложение было закодировано для работы с транзакциями. Я не знаю, эту функции самого, но 0.6.5 Примечания к выпуску состояния по floowing

Главная особенностью является автоматическим воспроизведением сделки посредством всей деятельность по сделке (от BEGIN TRANSACTION до COMMIT/ROLLBACK) сохраняются , Если возникает восстановимое исключение, например, если база данных выходит из строя или сеть опускается, пул будет автоматически воспроизводить всю транзакцию, позволяя вашему приложению восстанавливать изящно и автоматически.

В противном случае лучшим вариантом было бы перемещение управления соединением вплоть до кода приложения, так что, когда соединение заканчивается сообщением как сломанное к приложению, может приостанавливаться и повторять попытку до выключения.