2010-09-07 66 views
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"/> 

回答

0

怪異的確,這些調試語句做意味着你有命中的ersistence.unit: unitName =#pu-pay.cupmodel.Action Cache ...我想知道你的CacheManager是否正確,Hibernate Provider是否可以使用另一個實例?

你的hibernate配置是怎樣的?

+0

Thx的答覆亞歷克斯。我沒有休眠配置。 (它全部由persistence.xml和JPA註釋驅動。)我在原始問題中添加了一個persistence.xml片段。 – Jan 2011-01-05 11:45:40

+0

正確的,所以你使用EhCacheRegionFactory,可能是你想指定一個特定的ehcache配置文件,如果是的話,你應該設置net.sf.ehcache.configurationResourceName道具。否則,不是你正在尋找的SingletonEhCacheRegionFactory? – 2011-01-05 13:19:09

+0

如何獲取該cacheManager實例? – 2011-01-05 13:19:37