gpt4 book ai didi

java - 访问远程 MBean 服务器

转载 作者:搜寻专家 更新时间:2023-10-30 21:16:54 25 4
gpt4 key购买 nike

我正在使用 JBoss 运行客户端/服务器应用程序。

如何连接到服务器 JVM 的 MBeanServer?我想使用 MemoryMX MBean 来跟踪内存消耗。

我可以使用 JNDI 查找连接到 JBoss MBeanServer,但 java.lang.MemoryMX MBean 未在 JBoss MBeanServer 中注册。

编辑:要求以编程方式访问客户端的内存使用情况。

最佳答案

我写了这样一个类:

import javax.management.remote.JMXServiceURL;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanInfo;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;

public class JVMRuntimeClient
{
static void main(String[] args) throws Exception
{
if (args == null)
{
System.out.println("Usage: java JVMRuntimeClient HOST PORT");
}
if(args.length < 2)
{
System.out.println("Usage: java JVMRuntimeClient HOST PORT");
}

try
{
JMXServiceURL target = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://"+args[0]+":"+args[1]+"/jmxrmi");
JMXConnector connector = JMXConnectorFactory.connect(target);
MBeanServerConnection remote = connector.getMBeanServerConnection();

/**
* this is the part where you MUST know which MBean to get
* com.digitalscripter.search.statistics:name=requestStatistics,type=RequestStatistics
* YOURS WILL VARY!
*/
ObjectName bean = new ObjectName("com.digitalscripter.search.statistics:name=requestStatistics,type=RequestStatistics");

MBeanInfo info = remote.getMBeanInfo(bean);
MBeanAttributeInfo[] attributes = info.getAttributes();
for (MBeanAttributeInfo attr : attributes)
{
System.out.println(attr.getDescription() + " " + remote.getAttribute(bean,attr.getName()));
}
connector.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
System.exit(0);
}
}
}

关于java - 访问远程 MBean 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1270173/

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