应用程序重新启动时删除Ehcache diskstore

时间:2010-06-03 23:50:25

标签: java ehcache

我有一个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>

为什么会发生这种情况?

1 个答案:

答案 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>