AEM Corregir incoherencias en el repositorio cuando SegmentNotFound aparece en la versión 6.x de la aplicación de datos de la aplicación de datos de

Última actualización: 2023-11-16

Si tiene incoherencias en el repositorio (repositorio) al SegmentNotFound de la que se ha informado, ejecute una comprobación de coherencia en el repositorio, encuentre la última revisión buena (estado correcto) y vuelva a ella.

Descripción

Entorno

Adobe Experience Manager AEM () 6.x

Problema/Síntomas

Las excepciones para SegmentNotFound se observan en los registros.

Por ejemplo:

  1. *ERROR* [ FelixStartLevel] org.apache.sling.event [ org.apache.sling.event.impl.jobs.queue.QueueManager(1431)] El método activate ha producido una excepción (org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segmento da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e no encontrado)

  2. **ERROR* [ pool-6-thread-3] org.apache.sling.commons.scheduler.impl.QuartzScheduler Excepción durante la ejecución del trabajo de org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@1dc173f9 : No se encuentra el segmento e669f30b-e886-4b7a-b161-56432601ec6b

    org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segmento e669f30b-e886-4b7a-b161-56432601ec6b no encontrado*

Resolución

Ejecute una comprobación de coherencia en el repositorio, busque la última revisión buena (estado correcto) y vuelva a ella.

Siga estos pasos:

  1. Descargue una versión de oak-run que coincida con su versión del núcleo de Oak desde https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run

  2. Para revertir un almacén de segmentos corrupto a su último estado bueno, cambie al directorio de trabajo de CQ (el que contiene la carpeta crx-quickstartfolder) y haga una copia de seguridad de todos los archivos en/crx-quickstart/repository/segmentstore/.

  3. Realice la comprobación de consistencia,

    java -Xmx6000m -jar oak-run-*.jar check --bin=-1 /path/to/crx-quickstart/repository/segmentstore

    Esto busca hacia atrás en las revisiones hasta encontrar una consistente:

    Busque un mensaje como el siguiente:

    [ main] INFO o.a.j.o.p.s.f.t.ConsistencyChecker - Se encontró la última revisión buena afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880

  4. Revierta el repositorio a esta revisión editando/crx-quickstart/repository/segmentstore/journal.log y eliminando todas las líneas después de la línea que contiene la última revisión buena.

  5. Eliminar todo .Archivos /crx-quickstart/repository/segmentstore/*.bak.

  6. Ejecute la limpieza de puntos de comprobación para eliminar los puntos de comprobación huérfanos:

    java -Xmx6000m -jar oak-run-*.jar checkpoints /path/to/crx-quickstart/repository/segmentstore rm-unreferenced

  7. Finalmente, compacte el repositorio:

    java -Xmx6000m -jar oak-run-*.jar compact /path/to/crx-quickstart/repository/segmentstore/

Causa
Debido a algunos problemas antiguos en Oak o a algunas incoherencias en el repositorio, un segmento puede desaparecer y el repositorio puede ser incoherente.

En esta página