2014-12-16 1 views
0

ehcache와 관련된 문제에 직면하고 있습니다. 캐시가 영구적으로 설정되어 있고 JVM을 하나씩 수신 거부하고 있습니다. 실제로는 ehcache를 지우지 않고 다시로드하지 않습니다. 새로운 객체 ..재시작 JVM은 ehcache 객체를 다시로드하지 않습니다.

<cache name="SampleServerStartupCache" maxElementsInMemory="10000" eternal="true" overflowToDisk="true" maxElementsOnDisk="10000000" 
    diskPersistent="false" memoryStoreEvictionPolicy="LRU" diskExpiryThreadIntervalSeconds="120" /> 

나는 믿음을 가졌다 그 캐시가 플러시하고 새로운 오브젝트를로드해야합니다 JVM의 재시작 = 영원한 "true"로 설정됩니다. 그러나 가동 중지 시간을 피하기 위해 JVM을 하나씩 수신 거부하고 있습니다. 클린 재시작 사이에 차이가 있습니까?

답변

0

eternal="true"은 요소가 캐시에서 만료되지 않는다는 것을 의미합니다. JVM 다시 시작시 요소의 수명에 영향을 미치지 않습니다.

캐시 요소가 지속되도록하려면 diskPersistent="true"을 설정하고 구성 파일에 디스크 경로를 정의해야합니다. 또한 JVM을 수신 거부 할 때 CacheManager을 올바르게 종료해야합니다. 그렇지 않으면 디스크에 저장된 데이터가 다시 시작할 때 삭제 될 수 있습니다. JVM이이 캐시를 지 웁니다 다시 시작 시나리오에서

코멘트 후

추가. 그러나 캐시로드는 응용 프로그램이 캐시를로드 할 때만 발생합니다. Ehcache는 사전로드를 수행하도록 구성되지 않았습니다. 그것이 원하는 경우 BootstrapCacheLoader에 대한 설명서를보십시오.

+0

루이 덕분에, 나는 완전한 재시동을해야하고 바운스를 굴러 가지 않아야합니까? 그러므로 ehcache는 삭제 될 것인가? 그게 유일한 선택인가? – Kumar

+0

수정 사항이 귀하의 질문에 답변되기를 바랍니다. 그렇지 않다면 질문에 설명을 추가하십시오. –