最近、ehcache の古い実装からバージョン 3.2 に切り替えたので、プロジェクト用に次の xml 構成ファイルがあります。
<eh:config xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:eh='http://www.ehcache.org/v3'
xsi:schemaLocation="http://www.ehcache.org/v3
http://www.ehcache.org/schema/ehcache-core-3.0.xsd">
<eh:persistence directory="C:\foo\bar\Cache-Persistence"/>
<eh:thread-pools>
<eh:thread-pool alias="defaultDiskPool" min-size="1" max-size="3"/>
</eh:thread-pools>
<eh:disk-store thread-pool="defaultDiskPool"/>
<eh:cache-template name="PROC_REQTemplate">
<eh:key-type>java.lang.String</eh:key-type>
<eh:value-type>java.lang.String</eh:value-type>
<eh:expiry>
<eh:ttl>640</eh:ttl>
</eh:expiry>
<eh:resources>
<eh:offheap unit="MB">500</eh:offheap>
<eh:disk unit="GB" persistent="true">3</eh:disk>
</eh:resources>
<eh:disk-store-settings thread-pool="defaultDiskPool"/>
</eh:cache-template>
<eh:cache alias="proc_req_cache" uses-template="PROC_REQTemplate"/>
</eh:config>
上記の構成では、次の例外トレースが表示されますが、スペースを節約するために切り詰められていますが、エラーが明確に示されています。
java.lang.IllegalStateException: No Store.Provider found to handle configured resource types [offheap, disk] from {org.ehcache.impl.internal.store.heap.OnHeapStore$Provider, org.ehcache.impl.internal.store.tiering.TieredStore$Provider, org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider, org.ehcache.impl.internal.store.disk.OffHeapDiskStore$Provider}
at org.ehcache.core.internal.store.StoreSupport.selectStoreProvider(StoreSupport.java:80) ~[?:?]
at org.ehcache.core.EhcacheManager.getStore(EhcacheManager.java:440) ~[?:?]
at org.ehcache.core.EhcacheManager.createNewEhcache(EhcacheManager.java:311) ~[?:?]
at org.ehcache.core.EhcacheManager.createCache(EhcacheManager.java:260) ~[?:?]
at org.ehcache.core.EhcacheManager.init(EhcacheManager.java:567) ~[?:?]
現在の 3.2 のドキュメントによると、データ ストレージ層の任意の組み合わせを使用できると考えていましたが、上記のエラーが示すように、明らかにそうではありません。
- オフヒープ リソースをコメント アウトし、両方ではなくディスクのみを残す場合にのみ、上記の hown 構成を機能させることができます。これは正常ですか?私は何が欠けていますか?
- 2.7.8 バージョンに従って、ドキュメント (こちらehcache-2.8-storage-options を参照) では BigMemory が offHeap ストアとして言及されていますが、正しく表示されている場合、ehcache-3.2.0.jar には何らかの内部マップがあります。その目的。上記で報告されたエラーは、プロジェクトに BigMemory を含めていないという事実に関連している可能性がありますか? 私の推測ではノーですが、誰かが明確にしてくれればいいのですが?
どんな助けでも大歓迎です。前もって感謝します。