重新启动JVM不会重新加载ehcache对象

时间:2014-12-16 03:27:42

标签: ehcache

我正面临着ehcache的问题,我已经设置了我的缓存是永恒的,我正在逐步弹出JVM到#34;没有停机时间",这实际上没有清除我的ehcache并重新加载新对象..

<cache name="SampleServerStartupCache" maxElementsInMemory="10000" eternal="true" overflowToDisk="true" maxElementsOnDisk="10000000"
    diskPersistent="false" memoryStoreEvictionPolicy="LRU" diskExpiryThreadIntervalSeconds="120" />

我确信当缓存设置为永久=&#34; true&#34;重启JVM应该刷新并加载新对象。但是为了避免停机,我们一个接一个地弹跳JVM,这是一个干净的重启之间的区别吗?

1 个答案:

答案 0 :(得分:0)

eternal="true"仅表示元素不会从缓存中过期。它对JVM重启时元素的生命周期没有影响。

如果您希望缓存元素的持久性,则需要设置diskPersistent="true",在配置文件中定义磁盘路径。在弹回JVM时,您还必须正确关闭CacheManager,否则在重新启动时可能会丢弃保存在磁盘上的数据。

在评论后添加

在您的方案中,重新启动JVM将清除其缓存。但是只有在应用程序放入缓存时才会加载缓存。 Ehcache未配置为执行预加载。如果这是您想要的,请查看BootstrapCacheLoader上的文档。