Мониторинг пула соединений DBCP2 с помощью JMX

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

У меня есть простое java-приложение на основе JDBC, которое использует dbcp2 для создания пула соединений, который используется простой службой запросов, и я хочу отслеживать эти соединения с помощью другого инструмента, такого как VisualVM, с использованием JMX. BasicDataSource DBCP2 имеет такие методы, как setJmxName(), который я не вижу для этого и не знаю, как его использовать.

Если кто-то не знаком с JDBC, вы можете прочитать об этом здесь.

Любая помощь в этом будет оценена. Спасибо!


person Adib Souly    schedule 25.01.2016    source источник
comment
Улучшен формат вопроса, чтобы сделать его более понятным. Добавлены некоторые ресурсы, указывающие на документацию JDBC, чтобы другим было легче следить за тем, на чем сосредоточена тема.   -  person Mike    schedule 27.01.2016
comment
У меня было много проблем с DBCP2 в продакшене с большим количеством потоков, я решил использовать C3P0, который отлично работает, плюс у него очень хорошая реализация JMX.   -  person Adib Souly    schedule 03.03.2016


Ответы (1)


Я также не нашел никакой документации, но кое-что понял, покопавшись в исходном коде.

Вам просто нужно создать объект BasicDataSource или BasicManagedDataSource, как обычно, а затем вызвать метод setJmxName(). Затем DataSource зарегистрируется на сервере MBean платформы при вызове метода getConnection() и отменит регистрацию при вызове метода close().


Установка имени JMX "org.apache.dbcp:DataSource=mydbname" работает, пример, который Apache использует для модульных тестов, может быть находится здесь.

person sam.bishop    schedule 12.07.2016
comment
Синтаксис имени объекта описан здесь: oracle.com/ us/technologies/java/best-practices-jsp-136021.html. - person Holger Thurow; 04.07.2017