Обычно соединения в пуле заключаются в специфичную для AS реализацию, которая заботится о том, чтобы клиент был слишком навязчивым. Когда для соединения вызываются определенные методы, оно считается «грязным» и не может быть возвращено в пул, но вместо этого закрыто и воссоздано или сброшено в исходное состояние, если это возможно. Часто есть настройки того, как справляться с этими ситуациями, например, Удалить зараженные соединения в Weblogic.
Эффект самоочищения может зависеть и от водителя. Поэтому я предлагаю вам сделать простой тест с пулом из 1 соединения. Установите для соединения значение autocommit = false, не закрывайте его, выйдите из него и попробуйте использовать его из другого клиента с тестом, проверяющим фактическое состояние свойства autocommit.
Еще одна вещь, которую следует учитывать, - это то, что Connection.close () в этой оболочке AS не закрывает соединение, а помещает его в пул. Поэтому, если ваш клиент отключается перед вызовом close () (и перед этим автоматически устанавливает autocommit обратно), соединение может быть недоступно для других клиентов пула, что создает утечку соединения.