Получение активных сеансов считается с помощью API JMX (Java Management Extensions)

Я пытаюсь использовать 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)

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

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

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

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

Решение Вопроса

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

 12 июл. 2009 г., 18:20
Вопрос помечен как «Jboss», так что это Tomcat, но его разновидность jboss. Вероятно, он не будет иметь стандартного слоя Tomcat JMX.
ObjectName name = new ObjectName("Catalina:type=Manager,path=/NAME_OF_APP,host=localhost"); 
ManagementFactory.getPlatformMBeanServer().getAttribute(name, "activeSessions");
 18 окт. 2013 г., 20:16
Хм, на Tomcat 7 это не работает. НоCatalina:type=Manager,context=/NAME_OF_APP,host=localhost
 18 янв. 2019 г., 09:43
какое должно быть значение атрибута для / NAME_OF_APP

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

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

Ваш ответ на вопрос