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

問題を解決するには、次の手順に従います。

  1. カスタムコードでセッション管理を確認し、使用後にすべてのリポジトリセッションを閉じます。
  2. リビジョンのクリーンアップとデータストアのガベージコレクションを営業時間外にスケジュールし、競合を削減できます。
  3. /system/console/jmxのJMX コンソールにアクセスし、SessionStatistics MBeansで長時間実行または非アクティブなセッションを確認します。 カスタムコードの起源を識別するには、InitStackTraceを使用します。
  4. AEM サービスのすべてのバックグラウンドプロセスについて、Java ネイティブ ThreadPoolをSlingが提供するThreadPoolManagerに置き換えます。
  5. これらの変更を実装した後、AEM パブリッシュインスタンスを再起動します。
  6. SegmentNotFoundException​が表示されなくなったことを確認するために、エラーログを数日間監視します。
  7. リポジトリの操作が安定しており、エラーがないことを確認します。

追加の考慮事項:

  • oak-runを使用したリポジトリの整合性チェックでは、一貫して正常なノードとプロパティが報告され、構造的な破損がないことを示します。
  • リビジョンクリーンアップを無効にしたり、オフラインコンパクションを実行したりしても、問題は解決されません。適切なスレッド管理が必要です。
  • FileDataStoreが設定されている場合、手動ノード削除オプションは適用されない可能性があります。手動による介入を試みる前に、必ずリポジトリの正常性を確認してください。

関連トピックス

recommendation-more-help
experience-cloud-kcs-help-kbarticles