3

JCS 1.3 を使用して永久ディスク キャッシュを作成しようとしています。キャッシュをシャットダウンして、次に使用するときにディスクから再ロードできるようにしたい。実行に時間がかかる DB からデータを取り込む予定のデータがたくさんあります。キャッシュがディスクからリロードされるだけで、はるかに高速になります。JCS のドキュメントを読み、その構成例を使用して作業を開始しようとしましたが、これまでのところ成功していません。これが私が使用している構成です

##############################################################
##### Default Region Configuration
jcs.default=DC
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=100
jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.default.cacheattributes.DiskUsagePatternName=UPDATE

##############################################################
##### CACHE REGIONS
jcs.region.myRegion1=DC
jcs.region.myRegion1.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.region.myRegion1.cacheattributes.MaxObjects=1000
jcs.region.myRegion1.cacheattributes.DiskUsagePatternName=UPDATE
jcs.region.myRegion1.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.region.myRegion1.elementattributes.IsEternal=true

##############################################################
##### AUXILIARY CACHES
# Indexed Disk Cache
jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
jcs.auxiliary.DC.attributes.DiskPath=f:/eh cache
jcs.auxiliary.DC.attributes.MaxPurgatorySize=10000
jcs.auxiliary.DC.attributes.MaxKeySize=10000
jcs.auxiliary.DC.attributes.OptimizeAtRemoveCount=300000
jcs.auxiliary.DC.attributes.OptimizeOnShutdown=true
jcs.auxiliary.DC.attributes.MaxRecycleBinSize=7500

これは、構成が正しいことを確認するために実行している非常に簡単なテストです。

JCS キャッシュ = JCS.getInstance("myRegion1"); cache.put("キー", "私の値");

 System.out.println("Value In Cache After Put [" + cache.get("key") + "]");

 Thread.sleep(5000);

 CompositeCacheManager.getInstance().shutDown();
 cache = JCS.getInstance("myRegion1");
System.out.println("Value In Cache After Reload [" + cache.get("key") + "]");

出力で得られるものは次のとおりです。

Value In Cache After Put [my value]
Value In Cache After Reload [null]

誰かがこれについて正しい方向に私を向けることができますか? それが私の構成の問題なのか、それともディスクから更新するようにコードで実行する必要があるのか​​ はわかりません。

4

2 に答える 2

-1

シャットダウン コールはキャッシュを破棄します。あなたのアーキテクチャについては知りませんが、JCS をシャットダウンするときに JCS が呼び出されないようにするため、JCS でシャットダウンを呼び出していません。これにより、ディスクに書き込みます。デフォルトでは、ディスクからもロードされるため、何もする必要はありません。

于 2016-03-10T09:23:37.640 に答える