Beheben von Inkonsistenzen im Repository, wenn SegmentNotFound in AEM 6.x gemeldet wird

Wenn das Repository (Repository) zum Zeitpunkt der SegmentNotFound Inkonsistenzen aufweist, führen Sie eine Konsistenzprüfung des Repositorys durch, suchen Sie die letzte zweifelsfrei funktionierende Revision (fehlerfreier Status) und kehren Sie zu ihr zurück.

Beschreibung description

Umgebung

Adobe Experience Manager (AEM) 6.x

Problem/Symptome

Die Ausnahmen für SegmentNotFound werden in den Protokollen aufgeführt.

Beispiel:

  1. *ERROR* [ FelixStartLevel] org.apache.sling.event [ org.apache.sling.event.impl.jobs.Queues.QueueManager(1431)] Die Methode „activate“ hat eine Ausnahme ausgelöst (org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segment da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e nicht gefunden)

  2. **ERROR* [ pool-6-thread-3] org.apache.sling.commons.scheduler.impl.QuartzScheduler Ausnahme während der Auftragsausführung von org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@1dc173f9 : Segment e669f30b-e886-4b7a-b161-56432601ec6b nicht gefunden

    org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segment e669f30b-e886-4b7a-b161-56432601ec6b nicht gefunden*

Auflösung resolution

Führen Sie eine Konsistenzprüfung des Repositorys durch, suchen Sie die letzte zweifelsfrei funktionierende Revision (fehlerfreier Status) und kehren Sie zu ihr zurück.

Führen Sie folgende Schritte aus:

  1. Laden Sie von https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run eine Version von oak-run herunter, die Ihrer Oak-Core-Version entspricht.

  2. Um einen beschädigten Segmentspeicher wieder in den letzten zuverlässig funktionierenden Zustand zu versetzen, wechseln Sie in das Arbeitsverzeichnis von CQ (das Verzeichnis, in dem sich der Ordner „crx-quickstartfolder“ befindet) und sichern Sie alle Dateien in ./crx-quickstart/repository/segmentstore/.

  3. Führen Sie die Konsistenzprüfung durch.

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

    Dadurch werden die Revisionen rückwärts durchsucht, bis eine konsistente gefunden wird:

    Suchen Sie nach einer Nachricht wie der folgenden:

    [ main] INFO o.a.j.o.p.s.f.t.ConsistencyChecker - Letzte gute Revision gefunden afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880

  4. Setzen Sie das Repository auf diese Revision zurück, indem Sie bearbeiten./crx-quickstart/repository/segmentstore/journal.log und Löschen aller Zeilen nach der Zeile, die die letzte zweifelsfrei funktionierende Revision enthält.

  5. Alle entfernen ./crx-quickstart/repository/segmentstore/*.bak-Dateien.

  6. Führen Sie eine Checkpoint-Bereinigung aus, um verwaiste Checkpoints zu entfernen:

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

  7. Komprimieren Sie abschließend das Repository:

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

Ursache
Aufgrund einiger älterer Probleme in Oak oder einiger Inkonsistenzen im Repository kann ein Segment fehlen und das Repository könnte inkonsistent sein.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f