我正在使用 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
在我的环境中没有任何作用。为什么呢?谢谢!