java - 以编程方式访问 Infinispan MBean

标签 java jmx mbeans infinispan

我正在使用 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;

        }

最佳答案

即使 JVM 在同一主机上运行,​​您也需要使用远程 MBean 服务器访问。

请查看Accessing a remote MBean server了解有关设置平台 MBean 服务器以进行远程连接以及连接到该服务器的更多信息。

关于java - 以编程方式访问 Infinispan MBean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16400399/

相关文章:

java - 在 Apache Karaf 的日志文件中打印 System.out.println

java - 迭代时向 HashSet 添加元素

mysql - DataSource maxActive在tomcat mysql中没有变化

java - ManagementFactory.getPlatformMBeanServer() 与 MBeanServerFactory.createMBeanServer()

java - 使用 Sun JConsole 访问 Websphere 7 MBean

java - 如何在 selenium webdriver 2 中选择复选框?

Java -install 与 PATH

java - 在 JavaAgent 中停止计划任务

java - 是否有可能监听 MBeanServer 来注册新 bean?

java - Tomcat 中的 Activity session 数