AEM/AEM Forms의 해결 방법 및 색인 손상 수정
AEM/AEM Forms에서 색인 손상 문제가 발생하는 경우, 이 문서를 통해 저장소에 포함된 색인 데이터를 삭제하고 손상된 색인을 다시 색인화하는 방법을 확인함으로써 문제를 해결할 수 있습니다.
설명 description
환경
Experience Manager Forms
문제/증상
색인 손상을 경험하는 것은 매우 드문 경우입니다. 하지만 이 경우 다음과 유사한 로그 항목이 표시됩니다.17.01.2019 17:55:47.374 *WARN* [ pool-118-thread-4] org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate [ async] The index update failed org.apache.jackrabbit.oak.api.CommitFailedException: OakMerge0001: OakMerge0001: Failed to merge changes to the underlying store (retries 5, 5169 ms) at org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch.merge0(AbstractNodeStoreBranch.java:345) at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:156) at org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:160) at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1588) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.mergeWithConcurrencyCheck(AsyncIndexUpdate.java:581) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.updateIndex(AsyncIndexUpdate.java:525) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.runWhenPermitted(AsyncIndexUpdate.java:431) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.run(AsyncIndexUpdate.java:323) at org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:115) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1164) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:634)
해결 방법 resolution
누군가가 이러한 상황에 직면한 경우, 이 문제를 해결하는 가장 빠른 방법은 저장소에 포함된 인덱스 데이터를 삭제하고 손상된 인덱스를 다시 인덱싱하는 것입니다.
참고: 리인덱싱은 인덱스 "workflowDataLucene"을(를) 사용하게 되는 이러한 예제에 대한 시간 및 리소스 소모 작업입니다.
인덱스 데이터를 삭제합니다.
인덱스 데이터는 /oak:index/workflowDataLucene 아래 저장소에 숨겨진 노드로 있으므로 손상된 인덱스를 삭제하려면 다음을 수행해야 합니다.
- 색인 정의(전용)를 새 위치에 복사합니다.
- 전체
/oak:index/workflowDataLucene노드 구조를 삭제합니다. /oak:index/workflowDataLucene을(를) 다시 만들고 다시 인덱싱합니다.
해결 방법:
해결 방법으로 색인을 삭제하는 대신 비활성화하고 동일한 정의를 사용하여 새 색인을 만들 수 있습니다.
- 손상된 색인과 동일한 색인 정의로 새 색인 생성
- 새 색인에 대한 색인 재지정 트리거
- 유형 속성을 "disabled"로 변경하여 손상된 인덱스 비활성화
이 변경 작업이 완료되면 모든 쿼리가 새 색인으로 이동합니다.
RDB에서 데이터 삭제:
마지막 수단으로 RDBmk에서 실행하는 경우 다음과 유사한 as 쿼리를 사용하여 데이터베이스에서 인덱스 데이터를 직접 삭제하도록 분석할 수 있습니다.
DELETE FROM NODES WHEREID = '2:/oak:index/workflowDataLucene' OR ID LIKE '3:/oak:index/workflowDataLucene/%' OR ID LIKE '4:/oak:index/workflowDataLucene/%' OR ID LIKE '5:/oak:index/workflowDataLucene/%' OR ID LIKE '6:/oak:index/workflowDataLucene/%' OR ID LIKE '7:/oak:index/workflowDataLucene/%' OR ID LIKE '8:/oak:index/workflowDataLucene/%' OR ID LIKE '9:/oak:index/workflowDataLucene/%' OR ID LIKE '10:/oak:index/workflowDataLucene/%' OR ID LIKE '5:p/oak:index/workflowDataLucene/%' OR ID LIKE '6:p/oak:index/workflowDataLucene/%' OR ID LIKE '7:p/oak:index/workflowDataLucene/%' OR ID LIKE '8:p/oak:index/workflowDataLucene/%' OR ID LIKE '9:p/oak:index/workflowDataLucene/%' OR ID LIKE '10:p/oak:index/workflowDataLucene/%' OR ID LIKE '11:p/oak:index/workflowDataLucene/%' OR ID LIKE '12:p/oak:index/workflowDataLucene/%' OR
이 경로로 이동하려면 쿼리를 실행하기 전에 몇 가지 사항을 변경해야 할 수 있습니다
참고: 이 삭제 후 AEM을 시작하기 전에 AEM을 종료해야 하며 로컬 영구 캐시 및 인덱스 파일(< crx-quickstart> /repository/cache 및 < crx-quickstart> /repository/index)을 삭제해야 합니다.