Очистка заброшенного соединения в mariadb (по сравнению с mysql)? - PullRequest
0 голосов
/ 07 ноября 2018

Переключение с mysql-connector на mariadb клиентская библиотека:

Что эквивалентно классу mysql com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkedShutdown()?

Если есть вообще? (Я также использую hikari пул соединений).

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Попробуйте org.mariadb.jdbc.Driver.unloadDriver ();, скорее всего, сработает.

Источник здесь.

Удача

0 голосов
/ 07 ноября 2018

Я не думаю, что есть эквивалент, похоже, что эта функция не была перенесена в Maria DB. Вместо этого было бы разумнее исправить утечку соединения в приложении.

Как объяснил автор пула HikariCP в в этом сообщении , эта функция принудительного закрытия прекращенных соединений имеет ряд проблем:

Да, мы рассмотрели это (удаление заброшенных соединений), но в конечном итоге решили пропустить. Проблема с закрытием протекающих соединений в несколько раз. Возможно, какой-то поток использует это соединение, и он собирается где-нибудь взорваться (в производстве), если мы закроем его. Или ничто не использует это соединение, и закрытие его не оказывает негативного влияния, но теперь мы только что скрыли утечку, которая будет вызывать постоянную циклическую обработку соединений в пуле.

Приложения ответственны за очистку ресурсов. Java-разработчики склонны лениться по сравнению с программистами на C / C ++. Это утечка, как утечка памяти, и оба могут и по праву должны убить ваше приложение. Как иначе вы 1) знаете, что существует проблема, и 2) будете заинтересованы в ее поиске и устранении.

Мы ценим весь вклад, даже если он не принят. В этом случае пользователям, которые ищут библиотеку для защиты от ошибок кодирования, вероятно, следует обратиться к tomcat-jdbc.

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

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