У Apache Derby плавное отключение? - PullRequest
0 голосов
/ 09 августа 2011

У меня есть программа, которая запускает сетевой сервер Derby с помощью API-интерфейса NetworkServerControl, и когда я хочу завершить работу сетевого сервера, я хочу сделать это изящно, чтобы не запускать новые транзакции, но все текущие транзакции получаютустановить количество времени, чтобы закончить.Я вижу, что API имеет команду завершения работы, но он ничего не говорит о текущих текущих транзакциях из клиентских подключений и о том, просто ли он сразу убивает процесс.Управляет ли сетевой сервер Derby текущими и новыми транзакциями автоматически, или есть метод для остановки новых клиентских подключений и транзакций?

Я думал (и это может быть совершенно неправильно), что я мог бы использовать вызов setMaxThreads (0) для прекращения клиентских подключений JDBC, но я не уверен, что произойдет с текущими транзакциями, если я это сделаю.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2014
DriverManager.getConnection("jdbc:derby:MyDbTest;shutdown=true");

Это изящно закроет базу данных.

0 голосов
/ 11 августа 2011

Рассмотрите возможность использования блокировок таблицы для этого. Напишите специальную программу, которая блокирует все важные таблицы, а затем отключает сетевой сервер.

http://db.apache.org/derby/docs/10.8/ref/rrefsqlj40506.html

...