2016-11-06 4 views
0

Spring + Hibernate에서 응용 프로그램을 구현했습니다. ORM 운영을 최적화하기 위해 내가으로 Ehcache에 대한 모니터링을 가능하게 this 튜토리얼 다음에있다 :JMX를 통한 Ehcache 모니터링

@EnableWebMvc 
@EnableSpringDataWebSupport 
@EnableCaching 
... 
public class SpringWebConfig extends WebMvcConfigurerAdapter { 

    .... 

    @Bean 
    public EhCacheCacheManager ehCacheManager() { 
     EhCacheCacheManager cacheManager = new EhCacheCacheManager(); 
     cacheManager.setCacheManager((net.sf.ehcache.CacheManager) ehCacheManagerFactory().getObject()); 

     return cacheManager; 
    } 

    @Bean 
    public EhCacheManagerFactoryBean ehCacheManagerFactory() { 
     EhCacheManagerFactoryBean cmfb = new EhCacheManagerFactoryBean(); 
     cmfb.setConfigLocation(new ClassPathResource("ehcache.xml")); 
     cmfb.setShared(true); 
     return cmfb; 
    } 

    @Bean 
    public ManagementService managementService() { 
     return new ManagementService(ehCacheManager().getCacheManager(), mBeanServer(), true, true, true, true); 
    } 


    @Bean 
    public MBeanServer mBeanServer() { 
     MBeanServer bean = ManagementFactory.getPlatformMBeanServer(); 
     return bean; 
    } 
} 

그러나 내가 JConsole의 어떠한 ehache 콩을 볼 수 없습니다 :

enter image description here

내가 뭔가를 놓친 경우에 당신이 알고 계십니까 통계를 사용 하시겠습니까?

답변

1

이 문제는 단순히 ManagementService을 만들었지 만 초기화하지 않았다는 데서 비롯된 것입니다.

managementService 메서드는 ManagementServiceinit() 메서드를 호출해야합니다.

효과적으로 빈으로 노출, 다른 목적을 위해 ManagementService에 대한 액세스를 필요로하지 않는

가 필요하지 않습니다 그리고 당신은 정적 ManagementService.registerMBeans(CacheManager, MBeanServer, boolean, boolean, boolean, boolean)의 어느 ehCacheManagerFactory() 또는 ehCacheManager() 방법 내부 사용하여이를 대체 할 수 있습니다.

정적 메서드는 ManagementService을 만들고 초기화합니다.

+0

네, 효과가 있습니다. 설명 주셔서 감사합니다! – bontade

관련 문제