Отладочный вывод HikariCP, это нормально?

Я только начал использовать HikariCP в Swing-приложении со спящим режимом. Я поддерживаю старый проект, так что там происходит много сумасшедших вещей. Функция обнаружения утечки соединения помогла мне понять, что сеансы закрываются только при определенных событиях, например, когда пользователь нажимает кнопку «Сохранить». В остальных случаях имеет место утечка. Я думаю, что предыдущие разработчики пытались реализовать единицу работы «длинные разговоры», но они пропустили некоторые (большинство) случаев.

Поэтому моя цель сейчас — найти все утечки и исправить их. Я планирую использовать выходные данные отладки HikariCP, чтобы помочь мне в этом. Я не знаю, есть ли вики-страница в документации HikariCP, которая объясняет вывод отладки, но мне было интересно, является ли этот вывод, когда приложение находится в режиме ожидания, нормальным, или там происходит что-то странное, что я должен исследовать подробнее. :

2015-09-14 01:12:51 DEBUG HikariPool - After fill pool stats HikariPool-0 (total=10, inUse=3, avail=7, waiting=0)
2015-09-14 01:13:21 DEBUG HikariPool - Before cleanup pool stats HikariPool-0 (total=10, inUse=3, avail=7, waiting=0)
2015-09-14 01:13:21 DEBUG HikariPool - After cleanup pool stats HikariPool-0 (total=6, inUse=3, avail=3, waiting=0)
2015-09-14 01:13:21 DEBUG PoolUtilities - Closing connection com.mysql.jdbc.JDBC4Connection@4fb38272
2015-09-14 01:13:21 DEBUG PoolUtilities - Closing connection com.mysql.jdbc.JDBC4Connection@417465f4
2015-09-14 01:13:21 DEBUG PoolUtilities - Closing connection com.mysql.jdbc.JDBC4Connection@454be902
2015-09-14 01:13:21 DEBUG PoolUtilities - Closing connection com.mysql.jdbc.JDBC4Connection@496fcf

Если это нормальное поведение, я также хотел бы знать, для чего нужны эти 4 соединения и почему они закрываются в этот момент. Спасибо.


person George Sofianos    schedule 13.09.2015    source источник


Ответы (1)


Это все нормальный вывод. Эти соединения, вероятно, закрываются из-за простоя в течение периода «idleTimeout» или из-за того, что они достигли своего времени существования («maxLifetime»). Я рекомендую выполнить обновление до последней версии (2.4.x), которая обычно указывает причину, по которой соединение было закрыто, в сообщении журнала отладки.

person brettw    schedule 20.09.2015
comment
Спасибо за ответ. Чего я не могу понять, так это почему общее количество подключений равно 10, а затем внезапно 6, а затем кажется, что 4 недостающих соединения закрываются. Я думаю, это просто так работает. Этот вывод был из версии 2.4.1. - person George Sofianos; 21.09.2015
comment
Похоже, это не версия 2.4.1. Класса PoolUtilties больше не существует. Сообщение должно выглядеть примерно так: PoolElf — Закрытие соединения com.mysql.jdbc.JDBC4Connection@4fb38272: (соединение прошло в режиме ожидания). Где (соединение прошло бездействующее время ожидания) может быть одним из нескольких сообщений, в том числе (соединение отключено или мертво) или (соединение достигло максимального времени жизни). - person brettw; 21.09.2015
comment
Похоже, что версия гибернации, которую я использовал (финальная версия 4.3.11 — выпущена в августе 2015 г.), зависит от более старой версии HikariCP (2.3.3). Сначала я попытаюсь обновить спящий режим. - person George Sofianos; 22.09.2015