Getting Active Session counts with JMX (Java Management Extensions) API

微笑、不失礼 提交于 2019-12-04 22:39:50

问题


I'm trying to use JMX API to get active session counts for a web application.

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

I've been reading JMX tutorial and documentation, but they are giving me the overview of what the technology is. I just can't pinpoint to what I need, yet.


回答1:


You can accomplish this by using something like JConsole or JVisualVM once you configure your app server to expose a JMX port. You don't mention which app server you're using but for Tomcat, it's described here: http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html. Once you connect with JConsole, Tomcat exposes an MBean which has session information but again it depends which container you use.




回答2:


ObjectName name = new ObjectName("Catalina:type=Manager,path=/NAME_OF_APP,host=localhost"); 
ManagementFactory.getPlatformMBeanServer().getAttribute(name, "activeSessions");



回答3:


To track the sessions you could use an HttpSessionListener . If you want to expose the active sessions via JMX, you could register a mbean and call it from other applications(see JMX documentation).




回答4:


JBoss already exposes the active session count via JMX, but only across the whole server, not per webapp. If you only have one webapp being used, then that should be OK for you.

Go the JMX console on port 8080, and look for the entry called host=localhost,path=/,type=Manager. Inside that you'll find a entry for active session count.




回答5:


The answer given by skaffman is quite helpful, but I would amend that JBoss is able to give you the sessions per webapp by looking for:

host=localhost,path=/your_webapp_context,type=Manager

(replace your_webapp_context with the context of the webapp you are interested in...)



来源:https://stackoverflow.com/questions/1112381/getting-active-session-counts-with-jmx-java-management-extensions-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!