ProductAssetListener kann SegmentNotFoundException und Performance-Probleme verursachen
Dieser Artikel bietet eine Lösung für das Problem, dass ProductAssetListener SegmentNotFoundException und Leistungsprobleme in AEM 6.5.6, AEM 6.5.7 und AEM 6.4.6+ verursachen kann. Deaktivieren Sie die OSGi-Komponente com.adobe.cq.commerce.impl.asset.ProductAssetListener in ACS AEM Commons.
Beschreibung description
Umgebung
Adobe Experience Manager (AEM)
Problem
ProductAssetListener kann zu SegmentNotFoundException und Leistungsproblemen in AEM 6.5.6, AEM 6.5.7 und AEM 6.4.6+ führen.
Die typische Fehlermeldung von SegmentNotFoundException von diesem Problem enthält den Stacktrace wie unten.
*ERROR* [ sling-oak-observation-4] org.apache.jackrabbit.oak.segment.SegmentNotFoundExceptionListener
Segment nicht gefunden: 6376814a-9273-4df8-aedd-ec5e6eb7ab52. SegmentId-Alter=238801954ms,segment-generation=GCGeneration
org.apache.jackrabbit.oak.segment.SegmentNotFoundException: Segment 6376814a-9273-4df8-aedd-ec5e6eb7ab52 nicht gefunden
…
unter com.adobe.cq.commerce.impl.asset.ProductAssetListener.onEvent(ProductAssetListener.java:153)
Die Leistungsprobleme können Langsamkeit, keine Antwort und Verzögerungen/Blockierungen in der Replikationswarteschlange sein. Wenn das Problem auftritt, erscheint folgende Meldung im error.log.
*WARN* [ sling-oak-observation-4] com.adobe.cq.commerce.impl.asset.ProductAssetListener NODE_MOVED-Ereignis
für /content/dam/<-Asset> /<-Metadaten> Verfügt über keine erforderlichen Ereignisinformationen
Thread-Dumps während des Problems enthalten einen Sling-Oak-Beobachtungs-Thread mit ProductAssetListner, der aggressiv ausgeführt wird.
„sling-oak-observation-4“ prio=5 tid=0xd7 nid=0xffffffff runnable
…
unter com.adobe.cq.commerce.impl.asset.ProductAssetListener.onEvent(ProductAssetListener.java:153)
Lösung resolution
Dieses Problem wurde mit AEM 6.5.8 behoben.
Versionshinweise zum neuesten Service Pack für Adobe Experience Manager 6.5
Die Aktualisierung von Produkt-Asset-Verweisen führt dazu, dass sich die Replikations-Threads im Wartezustand befinden, bis der ProductAssetListener-Thread seine Übertragungen an den JCR abgeschlossen hat (NPR-35269).
Für AEM 6.4.6+ ist die Deaktivierung der OSGi-Komponente com.adobe.cq.commerce.impl.asset.ProductAssetListener eine Abhilfe. Zu diesem Zweck können Sie OSGi Component Disabler in ACS AEM Commons verwenden.
Konfigurieren von Component Disabler:
-
Erstellen Sie in CRX/DE einen sling:OSGiConfig-Knoten als
/apps/<your project>/config/com.adobe.acs.commons.util.impl.ComponentDisabler -
Fügen Sie eine Zeichenfolge
[]Eigenschaft mit name = „components“, value =["com.adobe.cq.commerce.impl.asset.ProductAssetListener"]