ProductAssetListener 可能会导致 SegmentNotFoundException 和性能问题

本文提供了在AEM 6.5.6、AEM 6.5.7和AEM 6.4.6+中,ProductAssetListener可能会导致SegmentNotFoundException和性能问题的解决方案。 在ACS AEM Commons中禁用OSGi组件com.adobe.cq.commerce.impl.asset.ProductAssetListener 。

描述 description

环境

Adobe Experience Manager (AEM)

问题

ProductAssetListener可能会导致​ SegmentNotFoundException ​以及AEM 6.5.6、AEM 6.5.7和AEM 6.4.6+中的性能问题。

此问题的典型错误消息​ SegmentNotFoundException ​包含如下所示的栈栈跟踪。

*ERROR* [ sling-oak-observation-4] org.apache.jackrabbit.oak.segment.SegmentNotFoundExceptionListener
未找到区段: 6376814a-9273-4df8-aedd-ec5e6eb7ab52。 SegmentId age=238801954ms,segment-generation=GCGeneration

org.apache.jackrabbit.oak.segment.SegmentNotFoundException:未找到区段6376814a-9273-4df8-aedd-ec5e6eb7ab52

在com.adobe.cq.commerce.impl.asset.ProductAssetListener.onEvent(ProductAssetListener.java:153)

性能问题可能是缓慢、无响应和复制队列延迟/阻塞。 当问题开始时,在 error.log中出现以下消息。

*WARN* [ sling-oak-observation-4] com.adobe.cq.commerce.impl.asset.ProductAssetListener NODE_MOVED事件
/content/dam/<资产> /<元数据>  没有所需的事件信息

问题期间的线程转储包含具有ProductAssetListner的sling-oak-observation线程正在积极运行。

"sling-oak-observation-4" prio=5 tid=0xd7 nid=0xffffff runnable

                在com.adobe.cq.commerce.impl.asset.ProductAssetListener.onEvent(ProductAssetListener.java:153)

分辨率 resolution

AEM 6.5.8 中的此问题已得到修复。

Adobe Experience Manager 6.5最新Service Pack发行说明

产品资产引用更新导致复制线程处于等待状态,直到 ProductAssetListener 线程完成对 JCR (NPR-35269) 的提交。

对于 AEM 6.4.6+,禁用 OSGi 组件 com.adobe.cq.commerce.impl.asset.ProductAssetListener 是一种解决方法。为此,您可以在ACS AEM Commons中使用OSGi组件禁用程序

如何配置组件禁用:

  1. 在CRX/DE中,创建一个sling:OSGiConfig节点作为/apps/<your project>/config/com.adobe.acs.commons.util.impl.ComponentDisabler

  2. 添加名称= "components",值= [ "com.adobe.cq.commerce.impl.asset.ProductAssetListener" ]的字符串[ ]属性

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f