解决AEM Publish实例中重复出现的“SegmentNotFoundException”错误
循环 SegmentNotFoundException 错误导致Adobe Experience Manager (AEM)发布实例崩溃并变得无响应。 存储库检查未显示损坏,重新启动后问题仍然存在。 由于线程处理不当,在版本清理和数据存储垃圾收集等维护任务期间出现问题。 将线程管理从Java本机ThreadPool切换到Sling提供的ThreadPoolManager解决了此问题。
描述 description
环境
Adobe Experience Manager (AEM)内部部署,v6.5.22.0
问题/症状
- SegmentNotFoundException错误重复出现在AEM发布实例日志中。
- AEM发布实例崩溃并变得完全无响应。
- 连续错误日志生成导致严重磁盘I/O阻塞。
- 使用oak-run报告进行存储库一致性检查没有损坏或结构问题。
- 在重新启动AEM后,即使将维护任务安排在工作时间以外或暂时禁用,问题仍然存在。
解决方法 resolution
请按照以下步骤解决问题:
- 检查自定义代码中的会话管理,并在使用后关闭所有存储库会话。
- 安排在工作时间以外进行修订清理和数据存储垃圾收集,以减少冲突。
- 访问
/system/console/jmx处的JMX控制台,并检查SessionStatisticsMBean以查找长时间运行或不活动的会话。 使用InitStackTrace标识自定义代码源。 - 将AEM服务中所有后台进程的Java本机
ThreadPool替换为Sling提供的ThreadPoolManager。 - 实施这些更改后,重新启动AEM发布实例。
- 几天监视错误日志,以确认 SegmentNotFoundException 不再出现。
- 验证存储库操作是否保持稳定且无错误。
其他注意事项:
- 使用oak-run进行存储库完整性检查会持续报告健康的节点和属性,这表明没有结构性损坏。
- 禁用修订版清理或运行脱机压缩不能解决此问题;需要正确的线程管理。
- 如果配置了
FileDataStore,则手动节点删除选项可能不适用;在尝试手动干预之前,请始终确认存储库的运行状况。
相关阅读
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f