Как отслеживать соединения c3p0
Я использую Hibernate в моей войне JBoss, используя c3p0 для пула соединений, оба настроены в спящем режиме.контекстно-свободная грамматика.файл конфигурации xml в моем classpath
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
Я видел сервер.журнал генерирует строки с интересной информацией о пуле соединений:
отладка [com.mchange.П2.resourcepool.BasicResourcePool] трассировка com.mchange.П2.resourcepool.BasicResourcePool@63f5e4b6 [управляемый: 10, неиспользуемый: 9, исключенный: 0]
для моего пула мониторинга (я использую nagios) я хотел бы предоставить JSP, рассказывающий, сколько соединений используется и сколько бесплатно, как говорится в файле журнала.
Как я могу спросить c3p0, сколько управляемых и неиспользуемых соединений есть?
2 ответов
вы можете контролировать свой пул соединений(ы) с помощью JMX. Из документации:
настройка и управление c3p0 через JMX
если библиотеки JMX и JMX Доступ доступны в вашем Среда (они включены в JDK 1.5 и выше), вы можете проверить и настроить источники данных c3p0 через a Инструмент администрирования JMX (например jconsole, в комплекте с jdk 1.5). Вы обнаружит, что c3p0 регистрирует MBeans под
com.mchange.v2.c3p0, с статистика по библиотеке как целое (называетсяC3P0Registry), и MBean для каждогоPooledDataSourceвы развертывать. Вы можете просматривать и изменять Свойства конфигурации DataSource, отслеживать активность соединения, Оператор, пулы потоков и сброс пулы и источники данных черезPooledDataSourceна MBean. (Вы можете хотите посмотреть на API Docs наPooledDataSourceдля документация доступна оперативный.)
кстати, есть кажется, Плагины JMX для Nagios, вы не вынуждены использовать JSP.
вы можете контролировать с Icinga / Nagios, как это.
-
скачать JMXQuery из кода google. Вам нужно будет проверить ревизию 18, Как так.
svn checkout -r 18 http://jmxquery.googlecode.com/svn/trunk/ jmxquery-read-only скачать этот патч. подстановочный патч для c3p0
-
используйте эту команду для исправления исходного кода: (убедитесь, что вы находитесь в каталоге jmxquery-read-only/src/main)
patch -p0 -i wildcard_patch.diff -
скачать Apache Maven и извлечь его с помощью этой команды
tar -zxvf apache-maven-*-bin.tar.gz -
теперь cd в папку jmxquery-только для чтения и выполните следующую команду (предполагая, что apache maven и jmxquery находятся в одной папке)
../apache-maven-*/bin/mvn compile -
затем выполните следующую команду:
../apache-maven-3.0.3/bin/mvn package -
теперь вы должны были произвести в jmxquery.файл jar, который вы можете использовать для запроса пула соединений c3p0 следующим образом: (файл check_jmx можно получить, просто загрузив код jmxquery с сайта кода google, как обычно. используя этой ссылке)
check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:1090/jmxrmi -O com.mchange.v2.c3p0:type=PooledDataSource* -N 1 -A numBusyConnections -w 50 -c 100