Вопрос по jmx, java, jboss, web-applications – Получение активных сеансов считается с помощью API JMX (Java Management Extensions)

6

Я пытаюсь использовать JMX API для получения активного числа сеансов для веб-приложения.

Is it possible to use JMX API to get this kind of information? If yes, how reliable would it be? Any example code on how to get this done?

Я читал учебник и документацию по JMX, но они дают мне общее представление о технологии. Я просто пока не могу точно определить, что мне нужно.

Ваш Ответ

5   ответов
2

HttpSessionListener , Если вы хотите предоставить активные сеансы через JMX, вы можете зарегистрировать mbean и вызывать его из других приложений (см. Документацию JMX).

3
ObjectName name = new ObjectName("Catalina:type=Manager,path=/NAME_OF_APP,host=localhost"); 
ManagementFactory.getPlatformMBeanServer().getAttribute(name, "activeSessions");
какое должно быть значение атрибута для / NAME_OF_APP
Хм, на Tomcat 7 это не работает. НоCatalina:type=Manager,context=/NAME_OF_APP,host=localhost
5

используя что-то вроде JConsole или JVisualVM, как только вы настроите сервер приложений для предоставления порта JMX. Вы не упоминаете, какой сервер приложений вы используете, но для Tomcat он описан здесь:http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html, Как только вы подключаетесь к JConsole, Tomcat предоставляет MBean, в котором есть информация о сеансе, но опять же это зависит от того, какой контейнер вы используете.

Вопрос помечен как «Jboss», так что это Tomcat, но его разновидность jboss. Вероятно, он не будет иметь стандартного слоя Tomcat JMX.
1

но только для всего сервера, а не для веб-приложения. Если у вас есть только один веб-приложение, то это должно быть хорошо для вас.

Перейдите на консоль JMX через порт 8080 и найдите запись под названиемhost=localhost,path=/,type=Manager, Внутри этого вы найдете запись для счетчика активных сеансов.

0

предоставленный skaffman, весьма полезен, но я бы сказал, что JBoss может предоставить вам сессии для каждого веб-приложения, выполнив поиск:

хост = локальный, путь = / your_webapp_context, тип = Менеджер

(замените your_webapp_context контекстом интересующего вас веб-приложения ...)

Похожие вопросы