首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JCS编辑磁盘辅助缓存DiskPath

JCS编辑磁盘辅助缓存DiskPath
EN

Stack Overflow用户
提问于 2013-03-08 23:46:56
回答 1查看 713关注 0票数 5

我正在开发一个带有JCS1.3缓存的web应用程序。

我需要在运行时通过JVM属性编辑索引磁盘辅助缓存的DiskPath。

你知道做这件事的方法吗?

我设法创建了AuxiliaryCache对象,但我不知道如何将它与在cache.ccf中定义的所有区域连接起来。

下面是创建磁盘缓存的代码:

代码语言:javascript
复制
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);

要获取一个区域,我使用以下命令:

代码语言:javascript
复制
JCS cache = JCS.getInstance(region);

能出个主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-11 16:52:49

最后,我们从web应用程序的类路径中提取了JCS conf文件(cache.ccf)。

我为这个文件添加了一个JVM属性。在访问JCS区域之前,我加载了属性,然后使用CompositeCacheManager类来配置JCS。

代码语言:javascript
复制
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);

source of the solution

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15297855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档