gpt4 book ai didi

java - 如何使用 JMX API 获取 tomcat 7 的内存使用情况?

转载 作者:搜寻专家 更新时间:2023-11-01 01:46:19 24 4
gpt4 key购买 nike

是否可以使用 JMX API 获取 tomcat 服务器的内存使用统计信息。哪个 Mbean 可以向我提供此信息?我在下面的代码中停留在 ObjectName 的形成上

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:2020/jmxrmi");
JMXConnector jmxc = JMXConnectorFactory.connect(url);
MBeanServerConnection server = jmxc.getMBeanServerConnection();

Object o = jmxc.getMBeanServerConnection().getAttribute(
new ObjectName("-----");

想知道 jconsole 是如何绘制内存图的,有源代码的指针吗?

最佳答案

MBeanServer connection = ManagementFactory.getPlatformMBeanServer();
Set<ObjectInstance> set = connection.queryMBeans(new ObjectName("java.lang:type=Memory"), null);
ObjectInstance oi = set.iterator().next();
// replace "HeapMemoryUsage" with "NonHeapMemoryUsage" to get non-heap mem
Object attrValue = connection.getAttribute(oi.getObjectName(), "HeapMemoryUsage");
if( !( attrValue instanceof CompositeData ) ) {
System.out.println( "attribute value is instanceof [" + attrValue.getClass().getName() +
", exitting -- must be CompositeData." );
return;
}
// replace "used" with "max" to get max
System.out.println(((CompositeData)attrValue).get("used").toString());

关于java - 如何使用 JMX API 获取 tomcat 7 的内存使用情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9206002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com