2010-09-07 8 views
2

Je pense que mon cache de second niveau Hibernate (3.5.3) est bien configuré avec EhCache (2.2).Hibernate & EhCache: net.sf.ehcache.Statistics non rempli?

Au moins, je remarque ci-dessous les entrées du journal:

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 

(... faire ces "hits magasin" indiquent vraiment que le cache fonctionne?)

Ce qui me déconcerte est maintenant:

Quand j'inspecte les statistiques comme suit:

cacheManager.getCache("persistence.unit:unitName=#pu-pay.c.u.p.model.Action").getStatistics().toString() 

... tout ce que je vois est:

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 

... pas de résultats, pas misses ... rien ...

En ehcache.xml, j'ai:

<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" 
     /> 

Est-ce que cela sonne une cloche à tout le monde? Dois-je activer des statistiques dans un autre emplacement également? ...


Mise à jour:

persistence.xml précise:

 <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"/> 

Répondre

0

Bizarre en effet, ces affirmations de débogage ne signifie que vous avez des coups à la ersistence.unit: unitName = # pu-pay.cupmodel.Action Cache ... Je me demande si votre CacheManager est le bon, est-ce que le Hibernate Provider utilise une autre instance?

À quoi ressemble votre configuration hibernate?

+0

Merci pour la réponse Alex. Je n'ai pas de config d'hibernation. (Tout est généré à partir d'annotations persistence.xml et JPA.) J'ai ajouté un extrait de persistence.xml à la question d'origine. – Jan

+0

À droite, donc vous utilisez EhCacheRegionFactory, vous voudrez peut-être spécifier un fichier de configuration ehcache spécifique, si c'est le cas, vous devez définir le paramètre net.sf.ehcache.configurationResourceName. Sinon, le SingletonEhCacheRegionFactory n'était-il pas recherché? –

+0

Comment obtenez-vous cette instance de cacheManager? –

Questions connexes