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 れは、AEM 6.5.6、AEM 6.5.7 およびAEM 6.4.6+で SegmentNotFoundException およびパフォーマンスの問題を引き起こす可能性があります。
この問題による 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 が見つかりません
…
at 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/< asset> /< metadata の場合 > には、必要なイベント情報がありません
問題発生時のスレッドダンプには、ProductAssetListner を含む sling-oak-observation スレッドが積極的に実行されていることが記録されています。
「sling-oak-observation-4」 prio=5 tid=0xd7 nid=0xffffff runnable
…
at com.adobe.cq.commerce.impl.asset.ProductAssetListener.onEvent (ProductAssetListener.java:153)
解決策 resolution
この問題は、AEM 6.5.8 で修正されました。
Adobe Experience Manager 6.5 の最新のサービスパックリリースノート
製品アセット参照の更新が原因で、ProductAssetListener スレッドが JCR へのコミットを完了するまで、レプリケーションスレッドが待機状態になります(NPR-35269)。
AEM 6.4.6+ では、OSGi コンポーネント com.adobe.cq.commerce.impl.asset.ProductAssetListener を無効にすることが回避策です。それには、ACS AEM Commons の OSGi Component Disabler を使用できます。
Component Disabler の設定方法:
-
CRX/DE で、sling:OSGiConfig ノードを
/apps/<your project>/config/com.adobe.acs.commons.util.impl.ComponentDisablerのように作成します -
String
[name = "components"、value =["com.adobe.cq.commerce.impl.asset.ProductAssetListener"]の]プロパティを追加します。