gpt4 book ai didi

java - 如何以编程方式检查 JMX MBean 操作和属性?

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:42 24 4
gpt4 key购买 nike

假设我们有一个具有以下属性和操作的 MBean。

属性:名称大小

操作:获取名称()获取大小()

有没有办法以编程方式检查属性和操作?我一直在使用 IBM WebSphere MBeans,但他们的文档不是很好。

例如,如果您转到 IBMs Infocenter并导航到网络部署 -> 引用 -> 编程接口(interface) -> Mbean 接口(interface) -> ThreadPool。它们只列出了属性,没有操作。

使用 WebSphere wsadmin 工具,我实际上可以查看操作和属性。我想知道是否有一种方法可以对所有 MBean 执行此操作。

wsadmin>print Help.attributes(object)
Attribute Type Access
name java.lang.String RO
maximumSize int RW
minimumSize int RW
inactivityTimeout long RW
growable boolean RW
stats javax.management.j2ee.statistics.Stats RO

wsadmin>print Help.operations(object)
Operation
java.lang.String getName()
int getMaximumPoolSize()
void setMaximumPoolSize(int)
int getMinimumPoolSize()
void setMinimumPoolSize(int)
long getKeepAliveTime()
void setKeepAliveTime(long)
boolean isGrowAsNeeded()
void setGrowAsNeeded(boolean)
javax.management.j2ee.statistics.Stats getStats()

最佳答案

How to programmatically check JMX MBean operations and attributes?

我不太清楚您是在谈论以编程方式从当前 JVM 内部还是从客户端远程查找 MBean。有许多 JMX 客户端库。你可能想试试我的 SimpleJMX package .

使用我的代码,您可以执行以下操作:

JmxClient client = new JmxClient(hostName, port);
Set<ObjectName> objectNames = getBeanNames()
for (ObjectName name : objectNames) {
MBeanAttributeInfo[] attributes = getAttributesInfo(name);
MBeanOperationInfo[] operations = getOperationsInfo(name);
}

如果您询问当前的 JVM,那么您应该能够通过这种方式从内部 bean 获取 bean 信息:

MBeanServer server = ManagementFactory.getPlatformMBeanServer();
Set<ObjectName> objectNames = server.queryNames(null, null);
for (ObjectName name : objectNames) {
MBeanInfo info = server.getMBeanInfo(name);
}

关于java - 如何以编程方式检查 JMX MBean 操作和属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10342630/

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