AEM パブリッシュインスタンスでの繰り返し「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が設定されている場合、手動のノード削除オプションは適用されない場合があります。手動の介入を試す前に、常にリポジトリの正常性を確認してください。
関連資料
- AEM 6.5 ユーザーガイドの リビジョンクリーンアップ
- AEM 6.5 ユーザーガイドの データストアのガベージコレクション
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f