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

标签 java jmx websphere-7 mbeans

假设我们有一个具有以下属性和操作的 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/

相关文章:

java - JMF with Processing - 音频可视化工具

java - Java的JConsole可以用来自动配置内存吗?

java - jmx/jstatd 通过 ssh 隧道访问远程机器

java - JConsole 通过 ssh 本地端口转发

Websphere:管理代理配置文件和部署配置文件之间的区别?

java - Spring 3.1.1 SAXParseException 与 mvc :resources

java - 将 XML 放入嵌套布局后,数学逻辑停止工作

java - 为什么 hibernate 在第一条记录中创建 50000000000000001?

java - 通过 org.w3c.dom.Element 对象作为 org.dom4j.Document 上的参数查找(将 org.w3c.dom.Element 转换为 org.dom4j.Element)

deployment - Websphere 7 集群部署