alfresco.cache.immutableEntityTransactionalCache有什么问题?

alfresco.cache.immutableEntityTransactionalCache有什么问题?,alfresco,alfresco-share,Alfresco,Alfresco Share,我的日志中有: 2016-01-07 12:22:38,720 WARN [alfresco.cache.immutableEntityTransactionalCache] [http-apr-8080-exec-5] Transactional update cache 'org.alfresco.cache.immutableEntityTransactionalCache' is full (10000). 我不想在不了解实际情况和更好地了解露天缓存最佳实践的情况下增加容量 供参考

我的日志中有:

2016-01-07 12:22:38,720  WARN  [alfresco.cache.immutableEntityTransactionalCache] [http-apr-8080-exec-5] Transactional update cache 'org.alfresco.cache.immutableEntityTransactionalCache' is full (10000).
我不想在不了解实际情况和更好地了解露天缓存最佳实践的情况下增加容量

供参考: 当我从站点中的文档库根文件夹中列出元素时,会出现警告。请注意,该站点在该级别上确实有约300个文档/文件夹,其中几个文档/文件夹涉及当前的工作流,我将在一次调用中获得所有文档/文件夹(客户端分页)


我使用的是一个Alfresco CE 4.2.c实例,大约有8k个节点

每当您执行“大”事务时,我都会在日志中看到这一点。我的意思是批量更改100多个文件

引述:


性能下降是日志消息为警告的原因。当达到事务缓存大小时,缓存处理不再能够正确地处理事务提交,在将任何过时/不正确的数据放入共享缓存之前,它实际上会清空整个共享缓存。由于缓存未命中,下一个事务的性能将变差



缓存对Xmx的影响取决于缓存的功能。属性值缓存应该没有什么影响,因为它存储粒度值,但是节点属性缓存在存储整个属性映射时会产生完全不同的影响。我只有来自节点缓存更改的硬经验数据,为此,我们计算了额外的3 GiB需求,以增加到标准缓存大小的四倍


收到这些警告是很常见的。 我认为更改默认设置不是一个好主意。 如果可能的话,您可以尝试更改代码

正如一位Alfresco工程师在中所述,Alfresco建议的值为“正常”。它们被设计成在标准情况下工作良好

你可以决定改变它们,但你必须小心,因为你可以得到比什么都不做的更低的性能

我建议您调查为什么使用此webscript会导致缓存溢出,并检查是否可以对此采取措施。事实上,您正在同时检索300个文档/文件夹,这很可能是原因

在下面的文章中,您可以找到如何排除和解决缓存问题

如那篇文章所述,我建议提高ehcache的日志级别:

org.alfresco.repo.cache.EhCacheTracerJob=DEBUG


或者有选择地添加要监视的缓存的名称。

我见过很多次,但只有在批处理某些数据时,例如在删除包含数千个嵌套文件夹和文档的文件夹时。。。我知道这只是一个警告,即使显示了警告,操作仍在正确执行,但我注意到,一旦显示错误,性能会显著下降,直到手中的操作完成!性能下降是日志消息为警告的原因。当达到事务缓存大小时,缓存处理不再能够正确地处理事务提交,在将任何过时/不正确的数据放入共享缓存之前,它实际上会清空整个共享缓存。由于缓存未命中,下一个事务将出现性能不佳的情况…@AxelFaust如果我计划增加几个缓存大小,比如说10倍,我应该向JVM Xmx参数添加多少RAM?0.5 GB是否足够?有什么神奇的函数可以用来计算这个值吗?最重要的是,如果缓存太大(比如说10倍大),我的实例是否会受到性能差的影响?缓存对Xmx的影响取决于缓存的功能。属性值缓存应该没有什么影响,因为它存储粒度值,但是节点属性缓存在存储整个属性映射时会产生完全不同的影响。我只有来自节点缓存更改的硬经验数据,为此,我们计算了额外的3 GiB需求,以增加到标准缓存大小的四倍。我在共享中使用的是列出webscript的OOTB doclib,我没有自定义它!对不起,我问的问题太多了。此OOTB webscript是否在一次调用中返回整个站点?这300个元素都在同一个文件夹中吗?您正在使用的页面大小是多少?它是一个OOTB webscript,我只是要求在maxItems参数中输入1000条记录,它返回某个站点的某个cntaine(我的cas中的documentLibrary)下的特定内容。在我的例子中,我指的是根documentLibrary文件夹,它直接包含297个项目,包括多个工作流中涉及的文件夹和文件。我认为增加ehcache的日志级别会更容易。它将准确地告诉您每个缓存中发生了什么。我在一篇文章中添加了一个链接,该文章在我的回复中描述了如何做到这一点。我只是想指出,但在Alfresco 4.2中没有EhCache。Alfresco将Hazelcast和事务性内存结构(基本上是事务侦听器中包装的简单映射)结合起来,用于分布式数据/缓存管理。