簡単に言えば、Apache JCSを使用して独自のオブジェクトを管理するライブラリを作成しました。を使用すると、ファイルから設定を読み込み、キャッシュマネージャにロードされ、テストアプリケーションでライブラリをテストするとうまく動作します。ライブラリで使用するときにApache JCSキャッシュのコンフリクトを作成する
私の実際のアプリケーションでは、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
: それはSWAPとでmyRegionのDiskUsagePatternを作成
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の補助は、以下のように定義されます(私もDiskUsagePatternNameを試しましたが、違いはありません)。
DislockPathとしてLIB_DATA_DIRは使用されません。その代わりに、私はすでにApplicationの設定用に定義したものを使用します。
私がアプリケーションのJCS関連コードにコメントすると、それはライブラリのJCSでうまく機能します。
私もJCS.getInstance( "cache_name")を試しましたが、違いはありません。
皆さん、ありがとうございますか?