0

Spring MVC3.1.xでHibernate4.1.1.Finalを使用しており、第1レベルと第2レベルの両方のキャッシュを使用しています。キャッシュ操作のアノテーションを使用してドメインオブジェクトを構成しました。ただし、キャッシュはディスクに何も保存しません。

これが私の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>

Hibernateキャッシュのプロパティ:

<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フォルダー

4

1 に答える 1

1

maxElementsInMemoryEhCacheは、メモリ自体に多数のオブジェクトを保存した場合にのみ、オブジェクトをディスクに保存します。この時点以降にのみEhCacheがオブジェクトのディスクへの保存を開始するため、これだけの数のオブジェクトが実際にキャッシュされていることを確認してください。

于 2012-11-13T16:20:51.590 に答える