我有一个ehcache设置,除了每次重新启动我的应用程序/服务器(TcServer / Tomcat上的Spring应用程序)时都删除了持久性磁盘存储数据,它的工作正常。使用持久性磁盘库的重点是,尽管应用程序重新启动,仍能保留缓存。
这是我的ehcache.xml
<?xml version="1.0" encoding="UTF-8"?><ehcache><diskStore path="java.io.tmpdir/ehcache"/><cache name="clusterCache"
maxElementsInMemory="1"
maxElementsOnDisk="50"
eternal="true"
overflowToDisk="true"
diskPersistent="true"
memoryStoreEvictionPolicy="LFU"/></ehcache>
为什么会发生这种情况?
答案 0 :(得分:4)
作为documentation notes,Ehcache不会写入它从磁盘恢复的索引文件,除非通过VM关闭挂钩或(因为它位于servlet容器中)正确关闭了缓存)它提供的servlet上下文监听器。请参阅Ehcache documentation on shutting down for details,但这只是意味着将以下内容添加到您的web.xml中:
<listener>
<listener-class>net.sf.ehcache.constructs.web.ShutdownListener</listener-class>
</listener>