ProductAssetListener로 인해 SegmentNotFoundException 및 성능 문제가 발생할 수 있음
이 문서에서는 ProductAssetListener로 인해 AEM 6.5.6, AEM 6.5.7 및 AEM 6.4.6+에서 SegmentNotFoundException 및 성능 문제가 발생할 수 있는 문제를 해결합니다. ACS AEM Commons에서 OSGi 구성 요소 com.adobe.cq.commerce.impl.asset.ProductAssetListener 를 비활성화합니다.
설명 description
환경
AEM(Adobe Experience Manager)
문제
ProductAssetListener은(는) AEM 6.5.6, AEM 6.5.7 및 AEM 6.4.6+에서 SegmentNotFoundException 및 성능 문제를 일으킬 수 있습니다.
이 문제에 의한 SegmentNotFoundException 의 일반적인 오류 메시지에는 아래와 같은 스택 추적이 포함되어 있습니다.
*오류* [ sling-oak-observation-4] org.apache.jackrabbit.oak.segment.SegmentNotFoundExceptionListener
세그먼트를 찾을 수 없음: 6376814a-9273-4df8-aedd-ec5e6eb7ab52. SegmentId age=238801954ms,segment-generation=GCGgeneration
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/< 에셋> /< 메타데이터>용 필수 이벤트 정보가 없음
문제가 발생한 스레드 덤프에 ProductAssetListner이(가) 적극적으로 실행 중인 sling-oak-observation 스레드가 포함되어 있습니다.
"sling-oak-observation-4" prio=5 tid=0xd7 nid=0xffffffff 실행 가능
…
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 구성 요소 Disabler를 사용할 수 있습니다.
Component Disabler를 구성하는 방법:
-
CRX/DE에서 sling:OSGiConfig 노드를
/apps/<your project>/config/com.adobe.acs.commons.util.impl.ComponentDisabler(으)로 만듭니다. -
이름 = "components", 값 =
["com.adobe.cq.commerce.impl.asset.ProductAssetListener"]인 String[]속성을 추가하십시오.