0

我正在使用 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探索统计数据。

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

我只有:

@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 文档 中没有真正帮助 的Enable JMX support inside Hibernate - Using the API部分,因为它是一个抽象类并且无法实例化。StatisticsService

所以,请给我一些工作配置。此外,跑步java -jar hibernate-jconsole-1.0.7.jar在我的环境中没有任何作用。为什么呢?谢谢!

4

0 回答 0