Je rencontre des problèmes de persistance dans ehcache. Le cache fonctionne correctement au démarrage, mais il ne se souvient pas des anciennes valeurs lorsque je redémarre ma servlet tomcat. Voici mon code pour initialiser ehcache. Je n'utilise aucun fichier XML.Problème de persistance 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));
Le résultat de l'instruction de consignation "avant" est toujours NULL après un redémarrage.
Peut-être que je ne comprends pas bien ce que la « persistance » signifie dans ce contexte? Je pensais que le but était de garder le cache sauvegardé sur le disque afin qu'il puisse être rechargé au redémarrage du serveur. – atopcu
Les docs suggèrent que vous avez raison, mais je n'ai aucune idée de ce qui vous manque. Sois patient. –