如何使用JMX代码编写java应用程序以获取tomcat 7中的活动会话?

时间:2016-02-08 05:40:23

标签: java tomcat7 jmx

我正在使用apache tomcat 7 来运行我的Web应用程序。我需要通过运行java应用程序来了解活动会话的数量。

我已经读过可以使用 JMX 。我使用 jconsole 计算了数量。但是使用java应用程序我需要得到它。

任何人都可以帮我启动它。

1 个答案:

答案 0 :(得分:1)

一种非常简单的方法是

String serviceUrl = "service:jmx:rmi:///jndi/rmi://localhost:9001/jmxrmi";
JMXServiceURL jmxServiceUrl = new JMXServiceURL(serviceUrl);
JMXConnector jmxc = JMXConnectorFactory.connect(jmxServiceUrl, null);
MBeanServerConnection conn = jmxc.getMBeanServerConnection();
ObjectName name = new ObjectName("Catalina:type=ProtocolHandler,port=8080");
System.out.println(conn.getAttribute(name, "connectionCount"));

要了解有关Tomcat监控的更多信息,请查看Monitoring and Managing Tomcat(或本地安装http://localhost:8080/docs/monitoring.html)和FAQ - Monitoring

编辑要查找应用程序的活动会话,请相应地修改示例。如果您从默认的Tomcat安装中访问SessionExample,以下两行将显示累积会话。

ObjectName name = new ObjectName(
    "Catalina:type=Manager,context=/examples,host=localhost");
System.out.println(conn.getAttribute(name, "activeSessions"));