收集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