요약하면 Apache JCS를 사용하여 자체 객체를 관리하는 라이브러리를 만들었습니다. 를 사용하여 파일에서 구성을 읽고 캐시 관리자로로드하면 테스트 응용 프로그램으로 라이브러리를 테스트 할 때 모든 것이 잘 작동합니다.라이브러리에서 사용할 때 Apache JCS 캐시 confilicts 만들기
그러나 실제 응용 프로그램에서 응용 프로그램 관련 개체를 관리하기 위해 JCS도 사용하고 있는데 문제가 발생합니다.
응용 프로그램이 부팅 될 때 먼저 응용 프로그램 캐시 관리자를 인스턴스화하고 모든 구성을 성공적으로로드하고 의도 한대로 정확하게 만듭니다.
그러나 라이브러리의 캐쉬 관리 프로그램에 대해서는 구성을 전혀 사용하지 않으며 일부 기본 캐쉬 인스턴스를 인스턴스화한다고합니다. 내 라이브러리의 구성의 예를 들어 내가 가진 : 그것은 관련 구성을 사용하지 않는 보여주는 증거는
jcs.auxiliary.DCACHE=org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DCACHE.attributes=org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
jcs.auxiliary.DCACHE.attributes.DiskPath=LIB_DATA_DIR
jcs.auxiliary.DCACHE.attributes.MaxPurgatorySize=10000
jcs.auxiliary.DCACHE.attributes.MaxKeySize=10000
jcs.auxiliary.DCACHE.attributes.OptimizeAtRemoveCount=300000
jcs.auxiliary.DCACHE.attributes.MaxRecycleBinSize=7500
:
jcs.region.MYREGION=DCACHE
jcs.region.MYREGION.cacheattributes=org.apache.commons.jcs.engine.CompositeCacheAttributes
jcs.region.MYREGION.cacheattributes.MaxObjects=1200
jcs.region.MYREGION.cacheattributes.MemoryCacheName=org.apache.commons.jcs.engine.memory.lru.LRUMemoryCache
jcs.region.MYREGION.cacheattributes.DiskUsagePattern=UPDATE
가 DCHACHE 보조는 다음과 같이 정의된다 는 SWAP와 MYREGION의 DiskUsagePattern를 생성 (또한 DiskUsagePatternName을 시도했지만 어떤 차이도 만들지 않았습니다.)
DisckPath로 LIB_DATA_DIR을 사용하지 않습니다. 대신 Application 구성에 대해 이미 정의한 것을 사용합니다.
응용 프로그램의 JCS 관련 코드에 주석을 달면 라이브러리의 JCS에서 잘 작동합니다.
JCS.getInstance ("cache_name")도 시도했지만 차이는 없습니다.
혹시 들으셨습니까?