每当我运行应用程序时,第一次将cacheMgr.cacheExists(“myCache1”)返回为true,但在重新启动服务器后,它将返回false。我无法理解这个问题。
EHCacheUtilty.java
private static Ehcache getCache(String cacheName) throws Exception{
if(cacheMgr == null){
try{
cacheMgr = CacheManager.create(new URL("http://10.10.1.133:8080/ProjectName/xml/ehcache12.xml"));
System.out.println("cacheMgr"+cacheMgr);
System.out.println(cacheMgr.cacheExists("myCache1"));
System.out.println(Arrays.asList(cacheMgr.getCacheNames()));
}
catch(Exception e){
e.printStackTrace();
}
}
Ehcache cache = null;
if(cacheMgr!=null){
//cache = cacheMgr.addCacheIfAbsent(name);
cache = cacheMgr.getEhcache(cacheName);
}
return cache;
}
ehcache.xml中
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.sf.net/ehcache.xsd">
<diskStore path="G:\EHCacheTempMemory" />
<defaultCache maxElementsInMemory="10000" eternal="false"
overflowToDisk="true" timeToIdleSeconds="10" timeToLiveSeconds="20" diskPersistent="true" />
<cache name="myCache1"
maxElementsInMemory="500000"
maxElementsOnDisk="500000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="864000"
timeToLiveSeconds="8640000"
diskPersistent="true"
diskSpoolBufferSizeMB="20"
diskExpiryThreadIntervalSeconds="8640000"
memoryStoreEvictionPolicy="LFU" />
</ehcache>
请帮帮我
答案 0 :(得分:0)
每次重新启动服务器时,都需要重新运行此程序(或至少部分初始化EhCache的程序)。重新启动服务器会删除您拥有的实例。