Я использую Infinispan 5.2.1 и пытался получить доступ к MBeans через мою программу Java. Но не повезло. Я предполагаю, что Infinispan MBeans зарегистрированы на сервере Platform MBean. Я вижу все MBeans правильно в Jconsole, но не с программой.Access Infinispan MBeans programatically
Моя Infinispan конфигурация
<globalJmxStatistics enabled="true" allowDuplicateDomains="true"/>
программа My 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-программа не будет работать в той же JVM, что и Infinispan. Это верно? –
Да, это правильно. – era