标签: jcs

如何更改JCS cache.ccf文件的路径?

我正在尝试更改cache.ccf文件的路径大约一个小时...
当我正在调用时,JCS.getInstance("myRegion");我收到此错误:

Exception in thread "main" java.lang.IllegalStateException: Failed to load properties for name [/cache.ccf]
Run Code Online (Sandbox Code Playgroud)

我试图将cache.ccf放入src文件夹.在这种情况下一切都OK.但我希望它在./config/目录中,而不是在目录中./src.我试图更改配置文件名:

JCS.setConfigFilename("../config/cache.ccf");
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我得到同样的错误:

Exception in thread "main" java.lang.IllegalStateException: Failed to load properties for name [../config/cache.ccf]
Run Code Online (Sandbox Code Playgroud)

它接缝JCS试图找到"../config/cache.ccf"src目录中命名的文件.
在这里,我发现了这句话:
类路径应该包括该文件所在的目录,或者文件应该放在类路径的根目录下,因为它是自动发现的.

但即使cache.ccf文件位于项目的根目录中,我的applilcation也不起作用.
如何更改cache.ccf文件的路径?

java caching jcs

8
推荐指数
2
解决办法
7612
查看次数

JCS Cache关闭,保证磁盘持久性

我使用JCS进行缓存.现在我使用磁盘缓存来临时存储所有数据.问题是当我使用JCS时,只有在缓存正确关闭时才将密钥写入磁盘.

我使用磁盘使用模式作为UPDATE,它告诉JCS立即将数据写入磁盘而不将其保留在内存中.但问题是我们没有保留缓存中对象的密钥列表.所以我使用组缓存访问并获取来自缓存的密钥然后遍历密钥以获得结果.

所以现在我陷入了这样一种情况:我必须正确关闭缓存,即在使用索引磁盘缓存将所有数据写入磁盘之后.但是这里存在一个复杂性,索引磁盘缓存使用后台线程写入磁盘没有返回其状态的任何内容.

所以现在,我无法保证索引磁盘缓存已经将数据写入磁盘到我的前端实现.有没有办法解决这种情况,因为现在我只是睡了一些随机时间(比如10秒),之前缓存是关闭的,这实际上是一种非常愚蠢的方式.

编辑:我也面临着内存缓存的这个问题,但是一秒的睡眠大部分足以容纳500mb的数据.但是磁盘缓存的情况稍有不同.

java concurrency performance caching jcs

6
推荐指数
1
解决办法
1447
查看次数

JCS编辑磁盘辅助缓存DiskPath

我正在使用JCS 1.3缓存开发Web应用程序.

我需要在运行时从JVM属性编辑索引磁盘辅助缓存的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);
Run Code Online (Sandbox Code Playgroud)

要获得一个区域,我使用以下内容:

JCS cache = JCS.getInstance(region);
Run Code Online (Sandbox Code Playgroud)

请问一个想法?

java caching jcs

5
推荐指数
1
解决办法
665
查看次数

JCS到Autosys迁移

我们已经在运行的作业JCS,而且由于JCS不再支持,我们在迁移任务JCSAutosys.没有人在我们的团队对如何迁移任何想法任务JOBJCSAutosys.即使我谷歌搜索相同但没有帮助.

任何人都可以请步骤将JCS作业迁移到Autosys.

jobs jcs autosys

5
推荐指数
1
解决办法
181
查看次数

JCS并发错误

我在我的应用程序中使用JCS进行缓存.最近发生了一些错误,其中对缓存中的数据的并发访问导致空值,即一个线程写入缓存并且一个线程读取缓存.我想知道JCS是否本身支持从缓存中写入和读取时的线程安全实现.我也想知道如何使我的实现线程安全.因为我有多个类写入缓存,说PutData实现Runnable用于写入缓存和GetData也实现Runnable从缓存中读取,所以使方法synchronized没有任何意义,并且使它们原子也没有意义,因为数据不在类之间共享,我将数据对象传递给各个类.BTW我使用的是POJO序列化类.无论如何要克服这一点,或者我是否必须以强有力地完成写作然后阅读的方式改变我的实现,这是我认为的愚蠢.

这更像是生产者 - 消费者问题,除了我的消费者线程不消耗数据,而只是读取数据.因此同步确保只有一个线程写入缓存,但这并不能解决我的问题,因为另一个线程访问不同密钥的对象.

期待你的回答,谢谢,Madhu.

java concurrency jcs

1
推荐指数
1
解决办法
1388
查看次数

标签 统计

jcs ×5

java ×4

caching ×3

concurrency ×2

autosys ×1

jobs ×1

performance ×1