【发布时间】:2013-05-06 14:00:24
【问题描述】:
我正在使用 Infinispan 5.2.1 并尝试通过我的 Java 程序访问 MBean。但没有运气。我假设 Infinispan MBean 已在 Platform MBean 服务器中注册。我可以在 Jconsole 中正确查看所有 MBean,但在程序中看不到。
我的 Infinispan 配置
<globalJmxStatistics enabled="true" allowDuplicateDomains="true"/>
我的 Java 程序。
MBeanServerConnection mBeanServer = ManagementFactory.getPlatformMBeanServer();
String jmxQuery = "org.infinispan:type=Cache,name=" + "\"" + cacheName + "(" + cacheMode + ")" + "\""
+ ",manager=" + "\"" + "DefaultCacheManager" + "\""
+ ",component=Statistics";
Set<ObjectInstance> queryResults = mBeanServer.queryMBeans(new ObjectName(jmxQuery), null);
for (ObjectInstance objectInstance : queryResults) {
ObjectName objectName = objectInstance.getObjectName();
long cacheHits = (Long) mBeanServer.getAttribute(objectName, "Hits");
long removeHits = (Long) mBeanServer.getAttribute(objectName, "RemoveHits");
totalHits = cacheHits + removeHits;
}
【问题讨论】:
-
我希望您的 Java 程序不会在与 Infinispan 相同的 JVM 中运行。对吗?
标签: java jmx mbeans infinispan