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:
-
*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) -
**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 gefundenorg.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:
-
Laden Sie von https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run eine Version von oak-run herunter, die Ihrer Oak-Core-Version entspricht.
-
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/.
-
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 -
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.
-
Alle entfernen ./crx-quickstart/repository/segmentstore/*.bak-Dateien.
-
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
-
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.