【问题标题】:Access Infinispan MBeans programmatically以编程方式访问 Infinispan MBean
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-11-12
    • 2013-07-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2011-01-03
    相关资源
    最近更新 更多