Beheben von Inkonsistenzen durch Neustarten von AEM, wenn ein SegmentNotFound-Problem in AEM 6.3 gemeldet wird

Problem

In den Protokolldateien wird eine SegmentNotFoundException registriert. Das Neustarten von AEM führt dazu, dass der Fehler für einen Tag (oder länger) verschwindet.

Beispiel:

29.09.2017 05:40:27.031 *ERROR* [10.40.228.155 [1506663627021] GET /services/createvaultpackage HTTP/1.1] org.apache.jackrabbit.oak.segment.SegmentNotFoundExceptionListener Segment not found: 6c3c7910-6501-4c0a-af5d-6972006c6145. SegmentId age=654602216ms,segment-generation=17
org.apache.jackrabbit.oak.segment.SegmentNotFoundException: Segment 6c3c7910-6501-4c0a-af5d-6972006c6145 not found
at org.apache.jackrabbit.oak.segment.file.FileStore$8.call(FileStore.java:602)
...
at org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager.internalGetNodeType(ReadOnlyNodeTypeManager.java:409)
at org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager.getNodeType(ReadOnlyNodeTypeManager.java:147)
at org.apache.jackrabbit.vault.packaging.impl.JcrPackageManagerImpl.initNodeTypes(JcrPackageManagerImpl.java:737)
at org.apache.jackrabbit.vault.packaging.impl.JcrPackageManagerImpl.(JcrPackageManagerImpl.java:109)
at org.apache.jackrabbit.vault.packaging.PackagingService.getPackageManager(PackagingService.java:49)
at customcode.VaultPackageFromSearchServlet.doGet(VaultPackageFromSearchServlet.java:172)

Umgebung

AEM 6.3 und neuere Versionen mit aktivierter Online-Verdichtung

Ursache

Dies kann durch langwierige JCR-Sitzungen und Online-Verdichtung verursacht werden.

Lösung

Vermeiden Sie es, JCR-Sitzungen längere Zeit offen zu halten.  Um den Fehler erneut hervorzurufen, führen Sie folgende Schritte aus:

  1. Schließen Sie die Sitzung und öffnen Sie bei Bedarf eine neue.
  2. Oder rufen Sie regelmäßig session.refresh(true) auf.

Für weitere Details zum Thema lang laufende Sitzungen als ein Anti-Pattern in AEM 6.x sehen Sie diesen Artikel.

Adobe-Logo

Bei Ihrem Konto anmelden