Beheben von SegmentNotFoundException während der Workflow-Synchronisierung in AEM Forms 6.5

In diesem Artikel wird erläutert, wie Sie Workflow-Synchronisierungsfehler und SegmentNotFoundException beheben können, die in Adobe Experience Manager (AEM) Forms 6.5 nach geplanten Wartungsarbeiten auftreten können, insbesondere wenn sich die vollständige Repository-Komprimierung mit umfangreichen Schreibvorgängen überschneidet.

Beschreibung description

Umgebung

Adobe Experience Manager (AEM) Forms 6.5 (OSGi, eigenständig)

Problem/Symptome

  • Die Workflow-Synchronisierung schlägt nach der geplanten Wartung fehl oder fehlt.
  • Formularübermittlungen und Workflows können während des betroffenen Zeitraums nicht fortgesetzt werden.
  • Das Problem wird nach einiger Zeit automatisch behoben.
  • Der folgende Fehler wird in den Protokollen für betroffene Workflow-Aufträge angezeigt: org.apache.jackrabbit.oak.segment.SegmentNotFoundException
  • Das Problem tritt nur an Tagen auf, an denen eine vollständige Komprimierung ausgeführt wird, nicht bei leichteren Wartungsvorgängen.

Ursache

Dieses Problem tritt auf, weil der vollständige Komprimierungsprozess TAR-Dateien der alten Generation zurückgewinnt, auf die weiterhin aktive Workflow-Aufträge verweisen. Wenn sich umfangreiche Schreibvorgänge (z. B. eine vollständige LDAP-Synchronisierung) mit einer vollständigen Komprimierung überschneiden, werden die für laufende Workflows erforderlichen Segmente gelöscht, was zu SegmentNotFoundException führt.

Lösung resolution

Führen Sie zur Lösung dieses Problems folgende Schritte aus:

  1. Validieren Sie das Verfahren in einer niedrigeren (produktionsfremden) Umgebung, um die Befehle, die erwartete Ausgabe und den gesamten Prozess zu verstehen.

  2. Bevor Sie Änderungen an der Produktion vornehmen, sollten Sie ein vollständiges und konsistentes Backup oder einen Snapshot des Repositorys erstellen.

  3. Führen Sie mit dem Tool „oak-run“ eine Konsistenzprüfung des Repositorys durch:

    1. Stellen Sie sicher, dass die AEM-Instanz offline ist, bevor Sie Vorgänge auf Repository-Ebene ausführen.

    2. Führen Sie den folgenden Befehl aus (ersetzen Sie <path-to-oak-run.jar> und <path-to-repository> durch Ihre tatsächlichen Pfade):

      java -jar <path-to-oak-run.jar> check <path-to-repository>

    3. Führen Sie die Analyse nach Möglichkeit gegen eine Sicherungskopie des Produktions-Repositorys aus, um die Ausfallzeit zu minimieren.

  4. Überprüfen und passen Sie die Planung von LDAP-Synchronisierungs- und vollständigen Komprimierungsaufgaben an, um Überschneidungen zu vermeiden, insbesondere bei Vorgängen mit hohem Schreibzugriff. Erwägen Sie, die vollständige Komprimierung zu einem anderen Zeitpunkt auszuführen oder sicherzustellen, dass während der Komprimierung keine umfangreichen Schreibvorgänge auftreten.

  5. Überwachen Sie nach der Implementierung der Änderungen die Ausführung des Workflows und die Protokolle auf SegmentNotFoundException Fehler:

  6. Überprüfen Sie die Protokolle „error.log“ und „workflow“ von AEM auf das SegmentNotFoundException.

  7. Wenn die Probleme weiterhin bestehen, wiederholen Sie die Konsistenzprüfung und überprüfen Sie die Aufgabenplanung für weitere Anpassungen.

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