Solución alternativa y corrección de los daños en el índice con AEM/AEM Forms

Si alguien experimenta el problema de la corrupción de índices en los formularios AEM/AEM, este artículo le ayudará a resolver el problema mostrando cómo eliminar los datos de índices contenidos en el repositorio y reindexar el índice dañado.

Descripción description

Entorno

Formularios de Experience Manager

Problema/Síntomas

Experimentar un índice de corrupción es un caso muy inusual. Pero si esto sucede, se verán entradas de registro similares a:
17.01.2019 17:55:47.374 *WARN* [ pool-118-thread-4] org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate [ async] The index update failedorg.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)

Resolución resolution

Si alguien se enfrenta a esta situación, probablemente la forma más rápida de resolver este problema sea eliminar los datos de índice contenidos en el repositorio y reindexar el índice dañado.

NOTA: La reindexación es una acción que consume tiempo y recursos. Para estos ejemplos utilizaremos el índice "workflowDataLucene"

Eliminar los datos de índice:

Los datos de índice se encuentran en el repositorio que se encuentra debajo de /oak:index/workflowDataLucene como nodos ocultos, por lo tanto, para eliminar el índice dañado, deberá:

  1. Copie la definición del índice (solo) en una nueva ubicación.
  2. Eliminar toda la estructura de nodos /oak:index/workflowDataLucene.
  3. Vuelva a crear /oak:index/workflowDataLucene y active el reíndice.

Solución alternativa:

Como solución alternativa, en lugar de eliminar el índice, puede desactivarlo y crear uno nuevo con la misma definición:

  1. Cree un nuevo índice con la misma definición de índice que el corrupto
  2. Déclencheur reindexar en el nuevo índice
  3. Desactive el índice dañado cambiando la propiedad de tipo a “desactivado”

una vez que se hayan realizado estos cambios, todas las consultas irán al nuevo índice

Eliminar los datos de RDB:

Como último recurso y si ejecuta RDBmk, puede analizar para eliminar los datos de índice directamente de la base de datos con como consulta similar a:

DELETE FROM NODESWHERE
ID ='2:/oak:index/workflowDataLucene' ORIDLIKE '3:/oak:index/workflowDataLucene/%' ORIDLIKE '4:/oak:index/workflowDataLucene/%' ORIDLIKE '5:/oak:index/workflowDataLucene/%' ORIDLIKE '6:/oak:index/workflowDataLucene/%' ORIDLIKE '7:/oak:index/workflowDataLucene/%' ORIDLIKE '8:/oak:index/workflowDataLucene/%' ORIDLIKE '9:/oak:index/workflowDataLucene/%' ORIDLIKE '10:/oak:index/workflowDataLucene/%' OR 
IDLIKE '5:p/oak:index/workflowDataLucene/%' ORIDLIKE '6:p/oak:index/workflowDataLucene/%' ORIDLIKE '7:p/oak:index/workflowDataLucene/%' ORIDLIKE '8:p/oak:index/workflowDataLucene/%' ORIDLIKE '9:p/oak:index/workflowDataLucene/%' ORIDLIKE '10:p/oak:index/workflowDataLucene/%' ORIDLIKE '11:p/oak:index/workflowDataLucene/%' ORIDLIKE '12:p/oak:index/workflowDataLucene/%' OR


Si decide seguir esta ruta, asegúrese de comprobar la consulta antes de ejecutarla, ya que podría requerir algunos cambios

NOTA: AEM debe cerrarse y los archivos de índice y caché local persistente (< crx-quickstart> /repository/cache y < crx-quickstart> /repository/index) deben eliminarse antes de iniciar AEM después de esta eliminación.

recommendation-more-help
experience-cloud-kcs-help-kbarticles