Ultimo aggiornamento il
3 mag 2021
Problema
Si può osservare SegmentNotFoundException nei file di log. Il riavvio di AEM fa sì che l'errore scompaia per un giorno (o più a lungo).
Esempio:
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)
Ambiente
AEM 6.3 e versioni successive con Compattazione Online attivata
Causa
Può essere causato da lunghe sessioni di JCR e dalla compattazione online.
Risoluzione
Evita di tenere aperte le sessioni di JCR per un lungo periodo di tempo. Per risolvere il problema:
- Chiudi la sessione e aprine una nuova quando necessario.
- Oppure chiama periodicamente session.refresh(true).
Consulta questo articolo per maggiori dettagli sul tema delle sessioni di lunga durata come anti-pattern in AEM 6.x.