过去我一直在努力:通过Tomcat中的Spring与JMX公开Hibernate(缓存)统计信息
如果您只是想知道“它是否在工作”,则可以为
org.hibernate.stat.Statistics或启用Hibernate调试日志记录
org.hibernate.stat.*。但是,如果您(像我一样)想要获得缓存统计信息报告,则可以执行以下操作。这将显示具有所有统计信息的JMX
bean:
public class HibernateCacheStatisticsJmxRegistration { @Autowired private EntityManagerFactory entityManagerFactory; @Autowired private MBeanServer mbeanServer; private ObjectName objectName; public void register() throws JMException { final SessionFactory sessionFactory = ((HibernateEntityManagerFactory) entityManagerFactory).getSessionFactory(); objectName = new ObjectName("net.sf.ehcache:type=CacheStatistics,name=Hibernate2ndLevelCache"); final StatisticsService statsMBean = new StatisticsService(); statsMBean.setSessionFactory(sessionFactory); statsMBean.setStatisticsEnabled(true); mbeanServer.registerMBean(statsMBean, objectName); } public void unregister() throws JMException { mbeanServer.unregisterMBean(objectName); }}应用上下文:
<!-- Setting up Ehcache manager for various caches. --><bean id="ehCacheManager" > <property name="configLocation" value="classpath:ehcache.xml" /></bean> <ehcache:annotation-driven cache-manager="ehCacheManager" /><!-- Exposing cache statistics through JMX. --><context:mbean-server /><bean init-method="init"> <constructor-arg ref="ehCacheManager"/> <constructor-arg ref="mbeanServer"/> <constructor-arg value="true"/> <constructor-arg value="true"/> <constructor-arg value="true"/> <constructor-arg value="true"/></bean> <bean init-method="register" destroy-method="unregister" />



