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"/>
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
À 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é? –
Comment obtenez-vous cette instance de cacheManager? –