JBoss: Выясните, какому компоненту не удается вернуть соединение с пулом

#jboss #wildfly #datasource

#jboss #wildfly #источник данных

Вопрос:

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

Профилировщик? JMX? что-нибудь еще?

Спасибо, Валерий

введите описание изображения здесь

Ответ №1:

https://access.redhat.com/solutions/309913 Кажется, это именно то, что я искал.

Решение, позволяющее диспетчеру кэшированных подключений (CCM) идентифицировать утечку соединения:

  1. Включите CCM для источника данных. По умолчанию используется значение true, если оно явно не указано, но вы можете явно задать use-ccm=»true».
  2. Убедитесь, что он существует в подсистеме jca и установите debug=»true»

Установка debug=»true» приведет к:

Запишите ИНФОРМАЦИОННОЕ сообщение, указывающее, что JBoss «Закрывает соединение для вас. Пожалуйста, закройте их сами » Сгенерируйте трассировку стека для кода, в котором впервые было открыто утекшее соединение. Закройте утечку соединения