2017-10-12 20 views
1

Infinispanを初めて使用しています。 Javaコードでキャッシュの統計を取得しようとしています。グーグル・グーグルでは、いくつかの方法を見つけましたが、私にとっては解決策ではありませんでした。コードを見て、どこに行方不明があるか教えてください。JavaからInfinispan JMX統計を取得

import java.io.IOException; 

import org.infinispan.Cache; 
import org.infinispan.configuration.cache.Configuration; 
import org.infinispan.configuration.cache.ConfigurationBuilder; 
import org.infinispan.configuration.global.GlobalConfiguration; 
import org.infinispan.configuration.global.GlobalConfigurationBuilder; 
import org.infinispan.manager.DefaultCacheManager; 

public class InfinispanCacheStats { 

    public static void main(String[] args) throws InterruptedException, IOException { 
     GlobalConfiguration globalConfig = new GlobalConfigurationBuilder() 
        .globalJmxStatistics() 
        .enable() 
        .build(); 

     Configuration config = new ConfigurationBuilder() 
        .expiration().wakeUpInterval(5000l).lifespan(1000l).maxIdle(500l) 
        .build(); 
     config.jmxStatistics().enabled(); 

     DefaultCacheManager m = new DefaultCacheManager(globalConfig, config, true); 
//  DefaultCacheManager m = new DefaultCacheManager("D:\\infinispan.xml"); 
     Cache<Integer, String> cache = m.getCache(); 
     cache.start(); 
     System.out.println(m.getCache().getAdvancedCache().getStats().getStores()); 
    } 
} 

私も)(infinispan.xmlファイルを設定し、DefaultCacheManagerにそれを提供しようとしたが、それはinfinispan.xmlの次の例外

Exception in thread "main" java.util.ServiceConfigurationError: org.infinispan.lifecycle.ModuleLifecycle: Provider org.infinispan.query.impl.LifecycleManager could not be instantiated 
    at java.util.ServiceLoader.fail(Unknown Source) 
    at java.util.ServiceLoader.access$100(Unknown Source) 
    at java.util.ServiceLoader$LazyIterator.next(Unknown Source) 
    at java.util.ServiceLoader$1.next(Unknown Source) 
    at org.infinispan.commons.util.ServiceFinder.addServices(ServiceFinder.java:60) 
    at org.infinispan.commons.util.ServiceFinder.load(ServiceFinder.java:42) 
    at org.infinispan.util.ModuleProperties.resolveModuleLifecycles(ModuleProperties.java:41) 
    at org.infinispan.factories.GlobalComponentRegistry.<init>(GlobalComponentRegistry.java:94) 
    at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:292) 
    at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:271) 
    at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:244) 
    at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:231) 
    at com.practice.asrl.infinispan.InfinispanCacheStats.main(InfinispanCacheStats.java:26) 
Caused by: java.lang.ExceptionInInitializerError 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at java.lang.Class.newInstance(Unknown Source) 
    ... 11 more 
Caused by: java.lang.IllegalArgumentException: Logger implementation class org.infinispan.query.logging.Log_$logger has no matching constructor 
    at org.jboss.logging.Logger.getMessageLogger(Logger.java:2256) 
    at org.jboss.logging.Logger.getMessageLogger(Logger.java:2214) 
    at org.infinispan.util.logging.LogFactory.getLog(LogFactory.java:21) 
    at org.infinispan.query.impl.LifecycleManager.<clinit>(LifecycleManager.java:82) 
    ... 16 more 

コンテンツ生成:

<infinispan> 
<cache-container statistics="true"/> 
</infinispan> 

どれを助けていただければ幸いです

答えて

1

Configuraから統計を有効にする必要がありますtionBuilderオブジェクトです。デフォルトでは無効になっています。

Configuration config = new ConfigurationBuilder() 
.expiration().wakeUpInterval(5000l).lifespan(1000l).maxIdle(500l) 
      .jmxStatistics().enable() 
      .build(); 

あなたは、統計が有効にされているかどうか、これはあなたを教えてくれますが、それは設定を変更しませんconfig.jmxStatistics().enabled();を呼び出し

+0

それは働いている!! –

関連する問題