BoneCP правильное использование - PullRequest
10 голосов
/ 17 февраля 2012

Я только начал использовать BoneCP и извлек пример кода JDBC с сайта авторов.

У меня есть функция getConnection (), которая возвращает соединение, здесь есть фрагмент:

    // setup the connection pool
BoneCPConfig config = new BoneCPConfig();
// Config goes here.
connectionPool = new BoneCP(config); // setup the connection pool

return connectionPool.getConnection(); // fetch a connection

Теперь мои вопросы: 1) Вызываю ли я connection.close (), когда я закончу использовать функцию, возвращаемую сверху, так что она возвращается в пул ИЛИ это закрывает соединение полностью?Как вернуть соединение в пул?

2) Как очистить пул при выходе из приложения?Должен ли я вызывать connectionPool.shutdown (), когда я заканчиваю?И еще, я где-то читал, что мне нужно закрывать все пулы соединений по отдельности?Это правда?

Спасибо.

Ответы [ 2 ]

18 голосов
/ 17 февраля 2012

1. Всегда вызывайте connection.close(), чтобы вернуть соединение с пулом (оно не будет закрыто физически), когда вы закончите с ним.

2. Позвоните connectionPool.shutDown(), когда вы полностью закончили с пулом и не планируете повторного подключения.

1 голос
/ 28 сентября 2013
 Connection connection = dbPool.getConnection();

Объект Connection, полученный из пула, является классом-оболочкой. Он будет поддерживать основное соединение должным образом даже в Exception .

Даже в исключениях, связанных с подключением, например, TERMINATE_ALL_CONNECTIONS , пул BoneCP правильно закроет все базовые соединения.

Таким образом, пул BoneCP делает кэш прозрачным. Клиентская сторона должна следовать только порядку стенда,

  1. запросить соединение ( взять соединение из пула , пул решит, использовать ли его повторно / создать)
  2. запросить PreparedStatement / CallableStatement ( повторно использовать объект из пула, если он включен )
  3. выполнить операторы
  4. оператор закрытия, ( освободить объект оператора в пул, если он включен )
  5. закрыть соединение, ( освободить объект подключения к пулу )

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

boneCP.shutdown()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...