繁体   English   中英

JMX监视EhCache服务器MBean

[英]JMX monitoring EhCache Server MBeans

我有一个Tomcat实例,在其中部署了ehcache-server。 现在,我发出休息请求以放置/获取独立Java类中的元素。 一切正常。

现在,我想监视缓存。 我了解ehcache-server提供了多个类的mbean。 但是我几乎找不到有关如何注册这些mbean的任何信息。

启动jconsole时,可以看到Tomcat实例并连接到它。 但是我看不到ehcache-server的任何类(net.sf.ehache。*)。

文档说我可以使用函数registerMBeans来注册mbean。 但是,如何从独立的Java应用程序中调用Web应用程序中的方法?

恐怕我完全误会了。 我可以使用一些有关如何注册mbean和进行监视的指针。

提前致谢。

实际上很简单。 在您的Web项目中将其添加到配置文件下面

@Configuration
@EnableCaching
public class SpringCachePocConfig implements CachingConfigurer {

    net.sf.ehcache.CacheManager newCacheManager;

    @Bean(destroyMethod = "shutdown")
    public net.sf.ehcache.CacheManager ehCacheManager() {
        //Construct you cache here.

        net.sf.ehcache.config.Configuration config = new net.sf.ehcache.config.Configuration();
        config.addCache(<Your cache>);

        this.newCacheManager = new net.sf.ehcache.CacheManager(config);
        return newCacheManager;
    }


    @Bean
    public ManagementService managementService() {
        return new ManagementService(ehCacheManager(), mbeanServer(), true, true, true, true);

    }


    @Bean
    @Override
    public CacheManager cacheManager() {
        return new EhCacheCacheManager(ehCacheManager());
    }


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

    @PostConstruct
    public void init() {
        ManagementService.registerMBeans(ehCacheManager(), mbeanServer(), true, true, true, true);
    }


}

init()函数将注册您的MBean。 不要忘记在init()方法上方添加@PostConstruct批注

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM