ehcacheで永続性に問題があります。最初の起動時にキャッシュ自体は正常に動作しますが、Tomcatサーブレットを再起動すると古い値が記憶されません。 ehcacheを初期化するためのコードです。私はxmlを使用していません。EhCache 3.1.3永続性問題
import org.ehcache.Cache;
import org.ehcache.PersistentCacheManager;
import org.ehcache.Status;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;
import org.ehcache.config.units.EntryUnit;
import org.ehcache.config.units.MemoryUnit;
PersistentCacheManager persistentCacheManager =
CacheManagerBuilder.newCacheManagerBuilder()
.with(CacheManagerBuilder.persistence("/cache"))
.withCache("test-cache",
CacheConfigurationBuilder.newCacheConfigurationBuilder(
Integer.class, String.class,
ResourcePoolsBuilder.newResourcePoolsBuilder()
.heap(1, EntryUnit.ENTRIES)
.offheap(1, MemoryUnit.MB)
.disk(20, MemoryUnit.MB)
)
).build(true);
Cache cache = persistentCacheManager.getCache("test-cache", Integer.class, String.class);
log.info("Cache get 1 before putting: " + cache.get(1));
for(int i = 0; i< 1000; i++) {
cache.put(i,"Hello");
}
log.info("Cache get 1 after putting: " + cache.get(1));
「before」ログステートメントの結果は、再起動後も常にNULLです。
はおそらく、私は完全に「持続性」は、この文脈で意味を理解していませんか?キャッシュをディスクに保存しておいて、サーバーの再起動時に再ロードできるようにすることがポイントだと思いました。 – atopcu
ドキュメントはあなたが正しいと示唆していますが、私はあなたが何が欠けているのか分かりません。我慢して。 –