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
문서는 당신이 맞을 것이라고 제안하지만, 나는 당신이 무엇을 놓쳤는 지 전혀 모른다. 참으십시오. –