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组件禁用程序。
如何配置组件禁用:
-
在CRX/DE中,创建一个sling:OSGiConfig节点作为
/apps/<your project>/config/com.adobe.acs.commons.util.impl.ComponentDisabler -
添加名称= "components",值=
["com.adobe.cq.commerce.impl.asset.ProductAssetListener"]的字符串[]属性