2
我認爲我的Hibernate(3.5.3)二級緩存配置了EhCache(2.2)。Hibernate&EhCache:net.sf.ehcache.Statistics未填充?
至少,我注意到以下日誌條目:
20:15:28 DEBUG [net.sf.ehcache.Cache#searchInStoreWithStats] persistence.unit:unitName=#pu-pay.c.u.p.model.ActionCache: persistence.unit:unitName=#pu-pay.c.u.p.model.Action store hit for c.u.p.model.Action#TRT
20:15:28 DEBUG [net.sf.ehcache.Cache#searchInStoreWithStats] persistence.unit:unitName=#pu-pay.c.u.p.model.ActionCache: persistence.unit:unitName=#pu-pay.c.u.p.model.Action store hit for c.u.p.model.Action#PID
(...做這些「店命中」確實表明緩存工作?)
令我百思不解現在是:
當我檢查統計如下:
cacheManager.getCache("persistence.unit:unitName=#pu-pay.c.u.p.model.Action").getStatistics().toString()
...我看到的是:
name = persistence.unit:unitName=#pu-pay.c.u.p.model.Action cacheHits = 0 onDiskHits = 0 inMemoryHits = 0 misses = 0 size = 0 averageGetTime = 0.0 evictionCount = 0
...沒有命中,沒有失誤,...沒有...
在ehcache.xml
,我有:
<defaultCache
...
statistics="true"
...
/>
<cache
name="persistence.unit:unitName=#pu-pay.c.u.p.model.Action"
maxElementsInMemory="100"
eternal="true"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk="false"
statistics="true"
/>
這是否會對任何人體響鈴?我是否還需要在其他位置啓用統計信息? ...
更新:
的persistence.xml指定:
<property name="hibernate.cache.region.factory_class" value="net.sf.ehcache.hibernate.EhCacheRegionFactory"/>
<property name="hibernate.cache.use_query_cache" value="false"/>
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.generate_statistics" value="true"/>
Thx的答覆亞歷克斯。我沒有休眠配置。 (它全部由persistence.xml和JPA註釋驅動。)我在原始問題中添加了一個persistence.xml片段。 – Jan 2011-01-05 11:45:40
正確的,所以你使用EhCacheRegionFactory,可能是你想指定一個特定的ehcache配置文件,如果是的話,你應該設置net.sf.ehcache.configurationResourceName道具。否則,不是你正在尋找的SingletonEhCacheRegionFactory? – 2011-01-05 13:19:09
如何獲取該cacheManager實例? – 2011-01-05 13:19:37