解決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服務中的所有背景處理序,以Sling提供的
ThreadPool取代Java原生ThreadPoolManager。 - 實施這些變更後,請重新啟動AEM發佈執行個體。
- 監視數天的錯誤記錄以確認 SegmentNotFoundException 不再出現。
- 驗證存放庫操作是否保持穩定且沒有錯誤。
其他考量:
- 使用Oak-run的存放庫完整性檢查一致地報告健康的節點和屬性,表示沒有結構損壞。
- 停用修訂清除或執行離線壓縮並不會解決問題;需要適當的執行緒管理。
- 如果已設定
FileDataStore,手動節點移除選項可能不適用;在嘗試手動介入之前,請一律確認存放庫健康狀況。
相關閱讀
- AEM 6.5使用手冊中的修訂清理
- AEM 6.5使用手冊中的資料存放區記憶體回收
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f