5

JCS 1.3 キャッシュを使用して Web アプリを開発しています。

JVM プロパティから実行時に Indexed Disk Auxiliary Cache の DiskPath を編集する必要があります。

これを行う方法を知っていますか?

AuxiliaryCache オブジェクトを作成できましたが、それを cache.ccf で定義されたすべての領域に接続する方法がわかりません。

ディスクキャッシュを作成するコードは次のとおりです。

IndexedDiskCacheAttributes indexedCacheAttr = new IndexedDiskCacheAttributes();

indexedCacheAttr.setMaxKeySize(10000);
indexedCacheAttr.setMaxRecycleBinSize(10000);
indexedCacheAttr.setMaxPurgatorySize(10000);
indexedCacheAttr.setOptimizeAtRemoveCount(5000);

String cacheDir = System.getProperty("xxxxx");

if (cacheDir == null || cacheDir.trim().length() == 0) {
log.error("error:JCSManager xxxx.");
} else {          
indexedCacheAttr.setDiskPath(cacheDir);
}


IndexedDiskCacheManager indexedCacheManager = 
IndexedDiskCacheManager.getInstance(indexedCacheAttr); 

// instance du cache disque 
AuxiliaryCache auxCache = indexedCacheManager.getCache(region);

リージョンを取得するには、次を使用します。

JCS cache = JCS.getInstance(region);

アイデアをお願いします。

4

1 に答える 1

2

最後に、WebアプリのクラスパスからJCS confファイル(cache.ccf)を抽出しました。

このファイルにJVMプロパティを追加しました。JCSリージョンにアクセスする前に、プロパティをロードしてから、CompositeCacheManagerクラスを使用してJCSを構成します。

String jcsConfFile = System.getProperty("XXXXXX");

if (jcsConfFile == null || jcsConfFile.trim().length() == 0) {
  log.error("error:JCSManager .........");
} else {
  Properties props = new Properties();

  try {
    // load a properties file
    props.load(new FileInputStream(jcsConfFile));
  } catch (IOException e) {
    log.error("error:JCSManager ........", e);
  }

  CompositeCacheManager ccm = CompositeCacheManager.getUnconfiguredInstance();

  ccm.configure(props);
}

//....
// later, ask for the region
JCS cache = JCS.getInstance(region);

ソリューションのソース

于 2013-03-11T08:52:49.157 に答える