Spring,Hibernate EhCache带有监控服务

时间:2018-05-28 11:53:43

标签: hibernate jpa ehcache jconsole ehcache-3

我使用的是Spring 4.3.7,Hibernate 5.2.9,hibernate-jcache 5.2.10和ehcache 3.3.1。

这是相关的JPA配置属性:

 properties.put("hibernate.cache.use_second_level_cache", "true");
        properties.put("hibernate.cache.use_query_cache", "true");
        properties.put("hibernate.cache.region.factory_class", "org.hibernate.cache.jcache.JCacheRegionFactory");
        properties.put("hibernate.javax.cache.provider", "org.ehcache.jsr107.EhcacheCachingProvider");
        properties.put("hibernate.generate_statistics", "true");

我已在我的实体和查询上配置了L2缓存。

在控制台日志输出中,我可以看到正在进行一些缓存。但我想使用jconsole来探索统计数据。

我的问题是如何为jconsole公开这些软件包版本的JMX统计服务,以便能够呈现统计信息?

我只有:

@Bean
    public void ehCacheManager() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory(Vedantas.PU_NAME);
        SessionFactory sf = emf.unwrap(SessionFactory.class);

        StatisticsService statsMBean = new StatisticsService();
        statsMBean.setSessionFactory(sf);
        statsMBean.setStatisticsEnabled(true);

        MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
        mBeanServer.registerMBean(statsMBean, new ObjectName("Hibernate:application=Statistics"));
    }

这是jconsole documentationEnable JMX support inside Hibernate - Using the API部分,它并不真正有用,因为 StatisticsService是一个抽象类,无法实例化。

所以,请给我一些工作配置。 此外,运行java -jar hibernate-jconsole-1.0.7.jar在我的环境中什么都不做。为什么会这样? 谢谢!

0 个答案:

没有答案