JCS磁盘缓存问题

时间:2011-12-05 12:57:26

标签: java jcs

我正在使用JCS进行缓存,我遇到的问题是数据没有写入磁盘,即没有错误,但是当我查看数据文件时,它们的大小都是0k。任何人都知道导致此错误的原因是,我使用的是JCS网站中提供的属性文件。

2 个答案:

答案 0 :(得分:3)

其中一个cacheattributes是DiskUsagePatternName。值可以是SWAP或UPDATE。 SWAP是默认值。 UPDATE立即将缓存数据写入磁盘。

在你的cache.ccf中添加一行

jcs.region.[yourregionid].cacheattributes.DiskUsagePatternName=UPDATE

这样它将写入磁盘而无需关闭缓存,您仍然可以获得内存缓存的好处。

磁盘缓存仅在释放缓存对象时写入数据。在Web应用程序中,我不得不在我的servlet的destroy()方法中明确地调用dispose()。如果不调用dispose()并且没有将磁盘使用模式设置为UPDATE,则它将不会写入磁盘。

答案 1 :(得分:1)

你知道这是一个错误吗?也许只有当缓存超过某个限制时才会写入磁盘。即它只在必要时写入。

使用Madhu的解决方案:当jcs.default.cacheattributes.MaxObjects=0文件大小始终为0.删除此文件时,您可以看到文件中的数据。