Параметры подключения к базе данных, полученные из пула соединений JNDI - PullRequest
4 голосов
/ 29 марта 2011

Я разместил источник данных на сервере websphere и хотел использовать этот источник данных через своих клиентов приложений.

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

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

С уважением, Санни.

1 Ответ

3 голосов
/ 02 апреля 2011

Обычно соединения в пуле заключаются в специфичную для AS реализацию, которая заботится о том, чтобы клиент был слишком навязчивым. Когда для соединения вызываются определенные методы, оно считается «грязным» и не может быть возвращено в пул, но вместо этого закрыто и воссоздано или сброшено в исходное состояние, если это возможно. Часто есть настройки того, как справляться с этими ситуациями, например, Удалить зараженные соединения в Weblogic.

Эффект самоочищения может зависеть и от водителя. Поэтому я предлагаю вам сделать простой тест с пулом из 1 соединения. Установите для соединения значение autocommit = false, не закрывайте его, выйдите из него и попробуйте использовать его из другого клиента с тестом, проверяющим фактическое состояние свойства autocommit.

Еще одна вещь, которую следует учитывать, - это то, что Connection.close () в этой оболочке AS не закрывает соединение, а помещает его в пул. Поэтому, если ваш клиент отключается перед вызовом close () (и перед этим автоматически устанавливает autocommit обратно), соединение может быть недоступно для других клиентов пула, что создает утечку соединения.

...