使用 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

实现连接统计

看看Apache ActiveMQ JMX