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 コンソールにアクセスし、SessionStatisticsMBeansで長時間実行または非アクティブなセッションを確認します。 カスタムコードの起源を識別するには、InitStackTraceを使用します。- AEM サービスのすべてのバックグラウンドプロセスについて、Java ネイティブ
ThreadPoolをSlingが提供するThreadPoolManagerに置き換えます。 - これらの変更を実装した後、AEM パブリッシュインスタンスを再起動します。
- SegmentNotFoundExceptionが表示されなくなったことを確認するために、エラーログを数日間監視します。
- リポジトリの操作が安定しており、エラーがないことを確認します。
追加の考慮事項:
- oak-runを使用したリポジトリの整合性チェックでは、一貫して正常なノードとプロパティが報告され、構造的な破損がないことを示します。
- リビジョンクリーンアップを無効にしたり、オフラインコンパクションを実行したりしても、問題は解決されません。適切なスレッド管理が必要です。
FileDataStoreが設定されている場合、手動ノード削除オプションは適用されない可能性があります。手動による介入を試みる前に、必ずリポジトリの正常性を確認してください。
関連トピックス
- AEM 6.5 ユーザーガイドの リビジョンクリーンアップ
- AEM 6.5 ユーザーガイドのData Store Garbage Collection
recommendation-more-help
experience-cloud-kcs-help-kbarticles