Как правильно отключить встроенную базу данных 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 завершил работу и что нет другого исключения".

Другие вопросы по тегам