2016-06-21 5 views
0

私はキャッシュ(ehcache)をクリアし、DBからリロードしたいと思っていました。私はその後Ehcacheをオンデマンドでリロード(手動リフレッシュ)

CacheManager.removalAll(); 

を使用している方法でそのために私は、2つの方法を試してみましたが、以下に述べるように私は同じエラーを取得します(ここでは何か間違ってもよい)

1)

for (String cacheName : cacheNames) { 
    cache = lvCacheMgr.addCache(cacheName); 
} 
次のように

2)

for (String cacheName : cacheNames) { 
    lvCacheMgr.addCache(cacheName); 
    cache = lvCacheMgr.getCache(name); 
    cache.initialise(); 
} 

その後、私はエラーを取得しています

Caused by: java.lang.IllegalStateException: The org.hibernate.cache.StandardQueryCache Cache is not alive. 
    at net.sf.ehcache.Cache.checkStatus(Cache.java:2199) 
    at net.sf.ehcache.Cache.get(Cache.java:1354) 
    at org.hibernate.cache.EhCache.get(EhCache.java:74) 
    at org.hibernate.cache.StandardQueryCache.get(StandardQueryCache.java:105) 
    at org.hibernate.loader.Loader.getResultFromQueryCache(Loader.java:2163) 
    at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2126) 
    at org.hibernate.loader.Loader.list(Loader.java:2096) 
    at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94) 
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569) 
    at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283) 

答えて

0

CacheManager.removeAllCacheManagerなくCacheコンテンツをクリアするメソッドからCache Sを除去する方法です。

Cache.removeAllを呼び出す必要がある場合は、CacheManagerからすべてのキャッシュにアクセスできます。

関連する問題