使用 JMX 列出 Tomcat 个连接
List Tomcat connections using JMX
有没有办法列出 Tomcat 中每个部署的 jar 的所有连接?
我发现这段代码列出了所有应用程序:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://31.181.71.213:9999/jmxrmi");
JMXConnector jmxc = JMXConnectorFactory.connect(url);
MBeanServerConnection server = jmxc.getMBeanServerConnection();
Set<ObjectName> names = server.queryNames(new ObjectName("Catalina:type=Host,*"), null);
Set<String> hostNames = new HashSet<String>();
for (ObjectName on : names)
{
hostNames.add(on.getKeyProperty("host"));
}
for (String str : hostNames)
{
ObjectName[] webapps = (ObjectName[]) server.getAttribute(new ObjectName("Catalina:type=Host,host=" + str), "children");
for (ObjectName ob : webapps)
{
String[] appSpl = ob.getKeyProperty("name").split("//localhost");
// webappNames.add(appSpl[1]);
System.out.println("Deployed application " + appSpl[1]);
}
}
但是我怎样才能同时列出网络连接?
Apache ActiveMQ 正是您要找的!
您可以使用ActiveMQ MBeans - Connection
实现连接统计
有没有办法列出 Tomcat 中每个部署的 jar 的所有连接?
我发现这段代码列出了所有应用程序:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://31.181.71.213:9999/jmxrmi");
JMXConnector jmxc = JMXConnectorFactory.connect(url);
MBeanServerConnection server = jmxc.getMBeanServerConnection();
Set<ObjectName> names = server.queryNames(new ObjectName("Catalina:type=Host,*"), null);
Set<String> hostNames = new HashSet<String>();
for (ObjectName on : names)
{
hostNames.add(on.getKeyProperty("host"));
}
for (String str : hostNames)
{
ObjectName[] webapps = (ObjectName[]) server.getAttribute(new ObjectName("Catalina:type=Host,host=" + str), "children");
for (ObjectName ob : webapps)
{
String[] appSpl = ob.getKeyProperty("name").split("//localhost");
// webappNames.add(appSpl[1]);
System.out.println("Deployed application " + appSpl[1]);
}
}
但是我怎样才能同时列出网络连接?
Apache ActiveMQ 正是您要找的!
您可以使用ActiveMQ MBeans - Connection