Как программно получить размер пула соединений в JBoss?

Есть ли способ определить размер пула соединений с базой данных. Я хочу узнать минимальный размер пула, максимальный размер пула.

Причина в следующем:

  1. Мое приложение работает на Wildfly-9.0.1.Final.
  2. Я настроил источник данных в файле -ds.xml.
  3. У меня очень много клиентов и для каждого есть файл -ds.xml.
  4. В каждом файле я указал max-pool-size = 30.

Но для некоторых клиентов этот размер (30) оказывается небольшим, так как все больше и больше пользователей пытаются одновременно подключиться к пулу. Тогда в этом случае мне нужно увеличить максимальный размер пула до большего числа. Я хочу, чтобы что-то подобное помогло мне получить эти параметры, а затем на основе этого я выполнил некоторую логику. Например, если размер пула достиг 25/30, тогда электронная почта будет вызываться как предупреждение, чтобы разработчик мог увеличить размер своего пула. Таким образом, будет полезно избежать проблем, с которыми сталкивается клиент, когда он не может получить соединение, когда все запрашивается.

Есть ли способ программно получить доступ к этим параметрам пула соединений.


person mahendra kawde    schedule 15.06.2016    source источник


Ответы (2)


Ну есть несколько способов. Если бы ваш источник данных был настроен в файле standalone.xml, вы могли бы легко достичь своей цели.

через команду CLI (посмотрите здесь если вы не знакомы с CLI)

/subsystem=datasources/data-source=ExampleDS/statistics=pool:read-resource(include-runtime=true)

через JMX, прочитав следующий MBean

jboss.as:subsystem=datasources,data-source=ExampleDS,statistics=pool

Осторожно: в обоих случаях ExampleDS необходимо заменить вашим фактическим именем источника данных.

Обновить

Если вы напрямую поместите -ds.xml в каталог развертываний, вы сможете прочитать статистику следующим образом:

/deployment=my-ds.xml/subsystem=datasources/data-source=java\:jboss\/my\/jndiName\/for\/DeployedDS/statistics=pool:read-resource(include-runtime=true)

or

jboss.as:deployment=my-ds.xml,subsystem=datasources,data-source="java:jboss/my/jndiName/for/DeployedDS",statistics=pool

Обратите внимание, что в любом случае вам придется сначала включить эту статистику, прежде чем вы сможете получить доступ к любой полезной информации с помощью методов, показанных выше. Эта статистика может быть недостатком производительности. Вы можете включить эту статистику, например, через CLI:

/deployment=my-ds.xml/subsystem=datasources/data-source=java\:jboss\/my\/jndiName\/for\/DeployedDS/statistics=pool:write-attribute(name=statistics-enabled, value=true)

При работе с WildFly я обычно рекомендую настраивать источники данных в файле standalone.xml — он лучше поддерживается.

person DaImmi    schedule 15.06.2016
comment
Спасибо за ваш ответ. Я бы настроил источник данных в файле standalone.xml, но единого источника данных нет. Я имею дело почти с более чем 200 файлами источников данных. Поэтому я считаю, что настройка источника данных в -ds.xml, развернутом в папке /deployment, была бы хорошим вариантом. Еще одним преимуществом размещения источника данных в файле -ds.xml является то, что мне не нужно перезапускать сервер каждый раз, когда я добавляю новый источник данных. Но в случае с standalone.xml мне нужно перезапустить сервер, если я добавлю новый источник данных. - person mahendra kawde; 15.06.2016
comment
Взгляните на мое обновление. Вы можете использовать JMX MBean в сочетании с jolokia и отслеживать его в соответствующей системе мониторинга. - person DaImmi; 15.06.2016

Попробуйте это с jboss-cli:

[standalone@localhost:9999 /] /subsystem=datasources/data-source=ExampleDS/statistics=pool:read-resource(include-runtime=true)

person Gaur    schedule 13.08.2016