我在我的网络应用程序中使用了Hibernate 4.2和Ehcache 2.4.3,并且我发现我的缓存每隔几秒就会被清除(即使是标记为永久的缓存)。我的代码中没有地方可以清除所有缓存。为什么会这样?
这是我的ehcache.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="java.io.tmp"/>
<defaultCache
maxElementsInMemory="1000000"
eternal="false"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>
<cache name="[class A]"
maxElementsInMemory="250000"
eternal="false"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>
<cache name="[class B]"
maxElementsInMemory="10"
eternal="true"
overflowToDisk="false"/>
</ehcache>
这是我的Tomcat的JAVA_OPTS:
-server -Xms32G -Xmx32G -XX:PermSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=20 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70 -XX:+DisableExplicitGC