收集Hibernate/Ehcache统计信息并在基于Spring的设置中通过JMX公开它们看起来很容易。互联网有很多资源可以帮助http://snippets.dzone.com/posts/show/11159在Tomcat中通过JMX暴露Hibernate(缓存)统计信息
但是,所有这些文章都假设您正在使用某种Hibernate会话工厂。我不是 - 我的实体是JPA注释,我使用javax.persistence.EntityManager
。 如果我正在部署到Java EE容器,我可能已经能够通过JNDI获得Hibernate会话工厂,如此处所述http://internna.blogspot.com/2007/08/hibernate-statistics-in-enterprise-5.html但我在Tomcat上...
如何解决此问题?我还没有提出解决方案。
如果我不得不在了Ehcache CacheManager
参考我可以尝试这样的:由于缓存管理器是由Hibernate来创建
<context:mbean-server />
<bean class="net.sf.ehcache.management.ManagementService" init-method="init">
<constructor-arg ref="..myCacheManager.."/>
<constructor-arg ref="mbeanServer"/>
<constructor-arg value="true"/>
<constructor-arg value="true"/>
<constructor-arg value="true"/>
<constructor-arg value="true"/>
</bean>
(即它不是一个Spring bean)将无法正常工作。我试图用
<constructor-arg><bean id="cacheManager" class="net.sf.ehcache.CacheManager" factory-method="getInstance"/></constructor-arg>
希望我能以某种方式捕捉正确的实例。无法正常工作,因为这实际上会创建一个新的缓存管理器实例。
什么的Ehcache版本你正在用吗? 'CacheManager'上没有'getInstance()'方法。 – skaffman 2011-05-09 09:48:10
@skaffman,它在ehcache的核心2.3.1。 – 2011-05-09 20:06:10