JMX-мониторинг EhCache Server MBeans - PullRequest
0 голосов
/ 05 июня 2018

У меня есть экземпляр Tomcat, где я развернул ehcache-сервер.Теперь я делаю запросы на отдых, чтобы поместить / получить элементы из моего автономного класса Java.Все работает как положено.

Теперь я бы хотел следить за кешем.Я понимаю, что ehcache-сервер предоставляет mbeans нескольких классов.Но я едва могу найти какую-либо информацию о том, как зарегистрировать эти mbeans.

Когда я запускаю jconsole, я вижу экземпляр Tomcat и подключаюсь к нему.Но я не вижу никаких классов (net.sf.ehache. *) Ehcache-server.

В документации сказано, что я мог бы использовать функцию registerMBeans для регистрации mbeans.Но как мне вызвать метод в веб-приложении из моего автономного Java-приложения?

Боюсь, я совершенно не понимаю этого.Я мог бы использовать несколько указателей о том, как зарегистрировать mbeans и выполнить мониторинг.

Заранее спасибо.

1 Ответ

0 голосов
/ 22 октября 2018

Это на самом деле довольно просто.Добавьте этот ниже файл конфигурации в ваш веб-проект

@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() зарегистрирует ваши MBeans.Не забудьте добавить @PostConstruct аннотацию над вашим init() методом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...