ProductAssetListener può causare l’errore SegmentNotFoundException e problemi di prestazioni

Descrizione description

Ambiente

  • Experience Manager

Problemi/Sintomi
ProductAssetListener può causare SegmentNotFoundException e problemi di prestazioni in AEM 6.5.6, AEM 6.5.7 e AEM 6.4.6+.

Il messaggio di errore tipico di SegmentNotFoundException da questo problema contiene una traccia dello stack simile a quella riportata di seguito.

*ERROR* sling-oak-observation-4 org.apache.jackrabbit.oak.segment.SegmentNotFoundExceptionListener Segment non trovato: 6376814a-9273-4df8-aedd-ec5e6eb7ab52. Pagina SegmentId=238801954ms,segment-generation=GCGeneration

org.apache.jackrabbit.oak.segment.SegmentNotFoundException: Segmento 6376814a-9273-4df8-aedd-ec5e6eb7ab52 non trovato … all’indirizzo com.adobe.cq.commerce.impl.asset.ProductAssetListener.onEvent(ProductAssetListener.java:153)

I problemi relativi alle prestazioni possono essere la lentezza, l’assenza di risposta e il ritardo/blocco della coda di replica. Quando si verifica il problema, il seguente messaggio viene visualizzato in error.log.

L’evento *WARN* sling-oak-observation-4 com.adobe.cq.commerce.impl.asset.ProductAssetListener NODE_MOVE per /content/dam/asset/metadata non dispone delle informazioni richieste sull’evento

Le immagini thread durante il problema contengono un thread di osservazione sling-oak con ProductAssetListner in esecuzione in modo drastico.

"sling-oak-observation-4" prio=5 tid=0xd7 nid=0xffffffff eseguibile … all’indirizzo com.adobe.cq.commerce.impl.asset.ProductAssetListener.onEvent(ProductAssetListener.java:153)

Risoluzione resolution

Questo problema è stato risolto con AEM 6.5.8.

https://experienceleague.adobe.com/docs/experience-manager-65/release-notes/service-pack/previous-hotfixes-featurepacks.html?lang=it

L’aggiornamento del riferimento alle risorse di prodotto fa sì che i thread di replica si trovino nello stato di attesa fino a quando il thread ProductAssetListener non completa gli impegni in JCR (NPR-35269).

Per AEM 6.4.6+, la disattivazione del componente OSGi com.adobe.cq.commerce.impl.asset.ProductAssetListener rappresenta una soluzione alternativa. A tale scopo puoi utilizzare la funzione di disabilitazione dei componenti di ACS AEM Commons.

https://adobe-consulting-services.github.io/acs-aem-commons/features/osgi-disablers/component-disabler/index.html

Configurare la funzione di disabilitazione dei componenti:

  1. In CRX/DE, crea un nodo sling:OSGiConfig come /apps/your project/config/com.adobe.acs.commons.util.impl.ComponentDisabler

  2. Aggiungi una proprietà String con nome = "components", valore = "com.adobe.cq.commerce.impl.asset.ProductAssetListener"

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