Как правильно отключить встроенную базу данных Derby с помощью пула соединений BoneCP
С Дерби вы специально должны звонить:
DriverManager.getConnection("jdbc:derby:myDatabase;shutdown=true");
Когда вы хотите закрыть базу данных. Однако с BoneCP вы делаете:
BoneCPConfig config = new BoneCPConfig();
config.setJdbcUrl("jdbc:derby:myDatabase");
config.setXXX(...);
...
BoneCP connectionPool = new BoneCP(config);
// shutdown connection pool
connectionPool.shutdown();
Однако в случае с derby вам нужно вызвать команду shutdown, иначе вы можете получить некоторые ошибки.
Таким образом, вопрос заключается в том, как мне вызвать эту строку соединения для отключения в рамках BoneCP?
1 ответ
В другом связанном более новом вопросе следующая причина, по-видимому, является той же самой причиной: "Если вы не используете v0.8.1-beta2 или более позднюю версию, установите"disableConnectionTracking"на true в вашей конфигурации".
Другими словами, вам нужен как URL-адрес подключения Derby, так и соответствующий конфиг для BoneCP, по крайней мере, на данный момент...
Обратите внимание, что следует ожидать исключения, когда SUCCESSFULLY закрывает дерби: "Успешное завершение всегда приводит к исключению SQLException, которое указывает на то, что Derby завершил работу и что нет другого исключения".