Hibernate 4.1.x EhCache ничего не хранит на диске

Я использую Hibernate 4.1.1.Final с Spring MVC 3.1.x и использую кеш первого и второго уровня. Я настроил объекты своего домена, используя аннотации для операций с кешем. Но кеш ничего не хранит на диске.

Вот мой файл ehcache.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">

    <!--
    <diskStore path="java.io.tmpdir"/>
    -->
    <diskStore path="java.io.tmpdir/ehcache"/>
    <defaultCache
        maxElementsInMemory="10000" 
        eternal="false" 
        timeToIdleSeconds="300"
        timeToLiveSeconds="120" 
        overflowToDisk="true"
        maxElementsOnDisk="10000000" 
        diskPersistent="true"
        diskExpiryThreadIntervalSeconds="120" 
        memoryStoreEvictionPolicy="LRU" 
    />
</ehcache>

Свойства кэша гибернации:

<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>

Конфигурация на основе объявлений для объектов домена:

@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)

В папке / tmp нет папки с именем ** ehcache: **

/ tmp папка


person talha06    schedule 12.11.2012    source источник


Ответы (1)


EhCache будет сохранять объекты на диск, только если он сохранил maxElementsInMemory количество объектов в самой памяти. Вы уверены, что такое количество объектов действительно кэшируется, потому что только после этого EhCache начнет сохранять объекты на диске.

person Sumit Desai    schedule 13.11.2012