AEM Solución alternativa y corrección de la corrupción de índices con/AEM Forms
AEM AEM Si alguien experimenta el problema de la corrupción de índices en los formularios de índice de la lista de permitidos o de la lista de permitidos, este artículo le ayudará a resolver el problema mostrando cómo eliminar los datos de índice contenidos en el repositorio y cómo 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 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)
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"
Elimine los datos de índice:
Los datos de índice se encuentran en el repositorio que aparece a continuación /oak:index/workflowDataLucene
como nodos ocultos, para eliminar el índice dañado, debe hacer lo siguiente:
- Copie la definición del índice (solo) en una nueva ubicación.
- Eliminar todo
/oak:index/workflowDataLucene
estructura de nodos. - Recrear
/oak:index/workflowDataLucene
y activa la reindexación.
Solución alternativa:
Como solución alternativa, en lugar de eliminar el índice, puede desactivarlo y crear uno nuevo con la misma definición:
- Cree un nuevo índice con la misma definición de índice que el corrupto
- Déclencheur reindexar en el nuevo índice
- 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 se ejecuta en RDBmk
, puede analizar para eliminar los datos de índice directamente de la base de datos con como consulta similar a:
DELETE
FROM
NODES
WHERE
ID =
'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
Si decide seguir esta ruta, asegúrese de comprobar la consulta antes de ejecutarla, ya que podría requerir algunos cambios
NOTA: AEM Los archivos de índice y la caché local persistente deben estar cerrados (<
crx-quickstart>
/repository/cache y <
crx-quickstart>
AEM /repository/index) se ha eliminado antes de empezar a trabajar después de esta eliminación de la base de datos después de la eliminación de la base de datos.