Hibernate & EhCache: net.sf.ehcache. Статистика не заполнена? - PullRequest
2 голосов
/ 07 сентября 2010

Я думаю, что мой Hibernate (3.5.3) кэш второго уровня хорошо настроен с EhCache (2.2).

По крайней мере, я наблюдаю следующие записи журнала:

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

1 Ответ

0 голосов
/ 04 января 2011

Действительно странно, что эти операторы отладки означают, что у вас есть попадания в ersistence.unit: unitName = # pu-pay.cupmodel.Action Cache ... Интересно, правильный ли ваш CacheManager, может ли это быть Hibernate Provider использует другой экземпляр?

Как выглядит ваша конфигурация гибернации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...