问题标签 [jcs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
569 浏览

java - JCS 2.2 - 如何设置内存/索引磁盘缓存的最大大小?

我正在使用 JCS 创建具有 LRU 内存缓存和索引磁盘缓存的缓存。我意识到 MaxObjects 和 maxKeySize 等属性允许我设置某个缓存中的项目数量,但我想知道 JCS 是否允许我根据 KB、MB、GB 等设置大小。每个缓存使用总体?

Apache Commons JCS 站点在此处引用索引磁盘缓存的 KeySize 属性,但是当我尝试在我的 cache.ccf 中设置该属性时,我被告知“org.apache.commons 中没有此类属性 [keySize]。 jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes。”

有谁知道JCS是否允许这样做?

0 投票
1 回答
933 浏览

jmx - 无法在 JCS 中注册 JMX 管理 bean

一个tomcat 服务器中的几个 webapps CompositeCacheManager通过CompositeCacheManager#getUnconfiguredInstance(). 这个方法注册了一个 JMX bean ( JCSAdminBean),当 bean 已经注册时,它会因为 InstanceAlreadyExistsException 异常而引发警告:

我怎样才能摆脱这些警告?我需要在几个 webapps 中进行缓存,但我不一定需要这个管理 bean。

0 投票
0 回答
43 浏览

java - 使用 JCS 设计“提前”缓存

我一直在尝试实现“提前”缓存方案。从本质上讲,我有一个 Web 应用程序,用户可以与之交互以检索资源——如果之前请求过资源,则从缓存中检索资源,如果缓存未命中,则从其他地方检索资源。

我想提前填充缓存。这看起来就像用户在请求中提供特定参数,这将启动 Web 应用程序并让它请求资源并缓存它们。

问题的问题在于,如果用户在我的 Web 应用程序请求资源并缓存它们时请求特定资源,则需要优先考虑用户的请求。一旦用户收到资源,“提前”缓存应该重新启动。

我是 servlet 的新手,我不知道如何让两个请求像那样说话。我如何根据对我的网络应用程序的单独请求“推迟”某些功能的操作?

我很乐意提供任何你们都会觉得有用的相关代码。我的缓存类几乎与JCS 网站上的相同。

谢谢,凯文

0 投票
1 回答
628 浏览

java - JCS 缓存 - 删除功能不删除特定元素

JCS 缓存 - 删除功能不删除特定元素

我们应用程序的 jcs 缓存配置如下,我看到当我们使用 fulshAll() 方法时,它会删除整个缓存,但是当我们使用 remove(key) 时,它不会删除该对象。有人可以建议。

我将一个元素放入缓存中并在此处将其删除以进行演示。

当调用 PUT 时,我看到对象以 1kb 存储,我立即使用相同的键调用 remove 以进行测试,我看到对象仍然存在并且没有从缓存中删除,我希望 1kb 为 0,请让我知道我在这里做错了什么,为什么没有从文件缓存中删除缓存对象。

在此处输入图像描述

属性文件

0 投票
1 回答
468 浏览

java - 带有spring的Java缓存系统

我已经有一个系统,它使用 spring 的缓存抽象 + EhCache 实现缓存解决方案。但是现在,我需要将 EhCache 切换为其他能够为我提供分布式功能的解决方案。我发现 JCS ( java Caching System ) 适合我的问题。但是,我还没有设法找到一种将 Spring 缓存抽象与 JCS 一起使用的方法。你们中的任何人都知道如何将 Spring 缓存抽象与 JCS 一起使用吗?如果是这样,我该怎么做?

我的目标是找到一个像上面那样工作的 CacheManager 类,因此,能够使用 @cacheble、@key 等注释。

谢谢!!

0 投票
0 回答
288 浏览

jcs - Java 缓存系统 (JCS):将 300 MB 数据加载到缓存中需要 2-3 小时

场景:我有 2-3 个 Java 哈希映射(80 个缺失条目:大约 300MB)。我正在将它加载到 JCS 磁盘缓存中。加载需要2-3个小时!这是加载数据的代码!包装示例;

公共类单例{

}

问题:为什么需要2-3个小时?我在 JCS 配置中有什么设置错误吗?

0 投票
0 回答
269 浏览

java - JCS 由于 ConcurrentModification 禁用辅助缓存

我正在与一个远程缓存服务器的多个客户端一起使用 jcs。

这里是服务器配置:

registry.host=xx.xx.xx.xx registry.port=1104

远程缓存服务端口=1104

remote.cache.rmiSocketFactoryTimeoutMillis=5000

remote.cluster.LocalClusterConsistency=true

remote.cluster.AllowClusterGet=true

jcs.default=DC

jcs.default.cacheattributes=org.apache.commons.jcs.engine.CompositeCacheAttributes jcs.default.cacheattributes.MaxObjects=100 jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=1800 jcs.default.cacheattributes.UseMemoryShrinker=true

jcs.default.elementattributes.IsEternal=false jcs.default.elementattributes=org.apache.commons.jcs.engine.ElementAttributes

jcs.auxiliary.DC=org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory jcs.auxiliary.DC.attributes=org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes

jcs.auxiliary.DC.attributes.DiskPath=/home/java/conf/data jcs.auxiliary.DC.attributes.MaxPurgatorySize=1000

jcs.auxiliary.DC.attributes.MaxKeySize=1000 jcs.auxiliary.DC.attributes.OptimizeAtRemoveCount=300 jcs.auxiliary.DC.attributes.OptimizeOnShutdown=true jcs.auxiliary.DC.attributes.ClearDiskOnStartup=true jcs.auxiliary.DC。属性.DiskLimitType=SIZE

和客户端配置:

jcs.auxiliary.RC=org.apache.commons.jcs.auxiliary.remote.RemoteCacheFactory jcs.auxiliary.RC.attributes=org.apache.commons.jcs.auxiliary.remote.RemoteCacheAttributes jcs.auxiliary.RC.attributes.FailoverServers= xx.xx.xx.xx:1104 jcs.auxiliary.RC.attributes.RemoveUponRemotePut=false

jcs.auxiliary.RC.attributes.Receive=false jcs.auxiliary.RC.elementattributes.UseMemoryShrinker=true

客户端代码放在这里:

有时客户端会收到 ConcurrentModificationException 并且 jcs 禁用远程放置。每个客户端都有一个同步版本的 put,但是(在我看来)当两个客户端尝试同时将某些内容放在同一个缓存中时,就会发生这种情况。

有没有办法避免这种行为?

在堆栈跟踪下方:

2018-07-10 18:02:52 错误 RemoteCache:141 - 由于错误而禁用远程缓存:无法将 [da4a81e6-85df-426a-b6f6-a5b6777b0891] 放入节点 java.util.ConcurrentModificationException 在 java.util.HashMap$ HashIterator.nextNode(HashMap.java:1442) 在 java.util.HashMap$KeyIterator.next(HashMap.java:1466) 在 java.util.HashSet.writeObject(HashSet.java:287) 在 sun.reflect.GeneratedMethodAccessor135.invoke (未知来源)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1128 ) 在 java.io.ObjectOutputStream 的 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)。writeOrdinaryObject(ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) at java.util.HashMap.internalWriteEntries(HashMap.java :1790) 在 sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source) 在 java.lang 的 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 的 java.util.HashMap.writeObject(HashMap.java:1363)。 reflect.Method.invoke(Method.java:498) 在 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1128) 在 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496) 在 java.io.ObjectOutputStream.writeOrdinaryObject (对象输出流.java:1432) 在 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) 在 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) 在 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) 在 java. io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) 在 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) 在 java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) 在 java.util.ArrayList.writeObject (ArrayList.java:766) 在 sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498 ) 在 java.io.ObjectStreamClass。invokeWriteObject(ObjectStreamClass.java:1128) 在 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496) 在 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) 在 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java :1178) 在 java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) 在 org.apache.commons.jcs.utils.serialization.StandardSerializer.serialize(StandardSerializer.java:55) 在 org.apache.commons.jcs。 org.apache.commons.jcs.auxiliary.remote.AbstractRemoteAuxiliaryCache.processUpdate(AbstractRemoteAuxiliaryCache.java:421) 在 org.apache.commons.jcs.auxiliary 的 utils.serialization.SerializationConversionUtil.getSerializedCacheElement(SerializationConversionUtil.java:74)。AbstractAuxiliaryCacheEventLogging.updateWithEventLogging(AbstractAuxiliaryCacheEventLogging.java:65) at org.apache.commons.jcs.auxiliary.AbstractAuxiliaryCacheEventLogging.update(AbstractAuxiliaryCacheEventLogging.java:50) at org.apache.commons.jcs.engine.CacheAdaptor.handlePut(CacheAdaptor.java: 96) 在 org.apache.commons.jcs.engine.AbstractCacheEventQueue$AbstractCacheEvent.run(AbstractCacheEventQueue.java:281) 在 org.apache.commons.jcs.engine.AbstractCacheEventQueue$PutEvent.doRun(AbstractCacheEventQueue.java:362) 在 org .apache.commons.jcs.engine.CacheEventQueue$QProcessor.run(CacheEventQueue.java:228)50) 在 org.apache.commons.jcs.engine.AbstractCacheEventQueue$PutEvent.doRun(AbstractCacheEventQueue.java:362) 在 org.apache.org.apache.commons.jcs.engine.CacheAdaptor.handlePut(CacheAdaptor.java:96) .commons.jcs.engine.AbstractCacheEventQueue$AbstractCacheEvent.run(AbstractCacheEventQueue.java:281) 在 org.apache.commons.jcs.engine.CacheEventQueue$QProcessor.run(CacheEventQueue.java:228)50) 在 org.apache.commons.jcs.engine.AbstractCacheEventQueue$PutEvent.doRun(AbstractCacheEventQueue.java:362) 在 org.apache.org.apache.commons.jcs.engine.CacheAdaptor.handlePut(CacheAdaptor.java:96) .commons.jcs.engine.AbstractCacheEventQueue$AbstractCacheEvent.run(AbstractCacheEventQueue.java:281) 在 org.apache.commons.jcs.engine.CacheEventQueue$QProcessor.run(CacheEventQueue.java:228)228)228)

0 投票
1 回答
363 浏览

jcs - JCS 分组缓存 - 缓存值全部为空

刚开始用commons-jcs-2.2-bin

能够在默认和命名区域中成功存储任意复杂的对象(在使用组之前)。

在尝试使用组时,我可以看到(使用 JCSAdmin.jsp)我的键都已写入 - 但即使为我的所有键输出字符串值,例如

statesFIPSByStateCodeCache.putInGroup(state.getCode(), "stateFIPSByStateCode", state.getFipsId());

后续获取,例如

String fipsId = (String) statesFIPSByStateCodeCache.getFromGroup(stateCode, "stateFIPSByStateCode");

返回空值。

JCSAdmin.jsp 确认没有为这些键存储任何值,例如:

区域 [jurisdictions] 中键 [[GAN: groupId=[groupId=jurisdictions, stateFIPSByStateCode], attrName=WA]] 的项目

地区详情 | 所有地区

请帮忙!

0 投票
1 回答
211 浏览

playframework - javastravav3api 未拾取 cache.ccf 文件

cache.ccf 文件的位置

stk

-app
-bin -build.sbt
-cache.ccf
-conf
-lib
-libexec
-LICENSE
-logs
-project
-public
-README
-target
-test

堆栈跟踪:

0 投票
2 回答
828 浏览

java - 如何在 Spring Boot 中使用 JCS(Rest api)

我是 Spring Boot 缓存的新手,根据我的要求,我想将 JCS 与 spring boot(rest api)一起使用。我在谷歌上搜索过,但没有太多关于它的信息。

java类有可用的信息。有没有人知道如何使用它或任何相关的教程或信息。

这可能是基于意见的问题。但这是非常需要的。

}