Correction d’incohérences en redémarrant AEM lorsque l’erreur SegmentNotFound est signalée dans AEM 6.3

Problème

Une erreur SegmentNotFoundException est signalée dans les fichiers journaux. Si vous redémarrez AEM, l’erreur disparaît pendant un jour (ou plus longtemps).

Par exemple :

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)

Environnement

AEM 6.3 et les versions ultérieures avec l’option compression en ligne activée

Cause

Ceci peut être causé par des sessions JCR longues en ligne.

Résolution

Évitez de conserver les sessions JCR ouvertes pendant une longue période.  Pour résoudre ce problème :

  1. Fermez la session et ouvrez une nouvelle session lorsque cela est nécessaire.
  2. Ou appelez périodiquement session.refresh(true).

Voir cet article pour plus de détails sur la rubrique des sessions longues étant un anti-patron dans AEM 6.x.

Logo Adobe

Accéder à votre compte