ProductAssetListener kan orsaka SegmentNotFoundException- och prestandaproblem
Den här artikeln löser problemet där ProductAssetListener kan orsaka SegmentNotFoundException och prestandaproblem i AEM 6.5.6, AEM 6.5.7 och AEM 6.4.6+. Inaktivera OSGi-komponenten com.adobe.cq.commerce.impl.asset.ProductAssetListener i ACS AEM Commons.
Beskrivning description
Miljö
Adobe Experience Manager (AEM)
Utgåva
ProductAssetListener kan orsaka SegmentNotFoundException och prestandaproblem i AEM 6.5.6, AEM 6.5.7 och AEM 6.4.6+.
Ett typiskt felmeddelande för SegmentNotFoundException av det här problemet innehåller stackspårningen som nedan.
*ERROR* [ sling-oak-observation-4] org.apache.jackrabbit.oak.segment.SegmentNotFoundExceptionListener
Segmentet hittades inte: 6376814a-9273-4df8-aedd-ec5e6eb7ab52. SegmentId age=238801954ms,segment-generation=GCGeneration
org.apache.jackrabbit.oak.segment.SegmentNotFoundException: Segment 6376814a-9273-4df8-aedd-ec5e6eb7ab52 hittades inte
…
på com.adobe.cq.commerce.impl.asset.ProductAssetListener.onEvent(ProductAssetListener.java:153)
Prestandaproblemen kan vara långsam, ingen respons och fördröjning/block för replikeringskö. När problemet börjar visas följande meddelande i error.log.
*WARN* [ sling-oak-observation-4] com.adobe.cq.commerce.impl.asset.ProductAssetListener NODE_MOVED event
for /content/dam/< asset> /< metadata > saknar nödvändig händelseinformation
Tråden dumpas under problemet och innehåller en sling-eko-observationstråd med ProductAssetListner som körs aggressivt.
"sling-oak-Observation-4" prio=5 tid=0xd7 nid=0xffffffffff-körbar
…
på com.adobe.cq.commerce.impl.asset.ProductAssetListener.onEvent(ProductAssetListener.java:153)
Upplösning resolution
Problemet har åtgärdats med AEM 6.5.8.
Versionsinformation om Adobe Experience Manager 6.5 Senaste Service Pack
Referensuppdatering av produktresurs gör att replikeringstrådar är i vänteläge tills ProductAssetListener-tråden har implementerat JCR (NPR-35269).
För AEM 6.4.6+ är det en tillfällig lösning att inaktivera OSGi-komponenten com.adobe.cq.commerce.impl.asset.ProductAssetListener. Det gör du genom att använda OSGi Component Disabler i ACS AEM Commons.
Så här konfigurerar du Component Disable:
-
Skapa en sling:OSGiConfig-nod som
/apps/<your project>/config/com.adobe.acs.commons.util.impl.ComponentDisableri CRX/DE -
Lägg till en String
[]-egenskap med namnet = "components", value =["com.adobe.cq.commerce.impl.asset.ProductAssetListener"]