カスタム Oak/Lucene インデックスの問題により、AEM as a Cloud Service パイプラインが実行中の状態で停止する
この記事では、カスタム Oak/Lucene インデックスに関する問題が原因で、Adobe Experience Manager(AEM)as a Cloud Service デプロイメントパイプラインが実行中の状態のままになる状況を解決する方法について説明します。
説明 description
環境
Adobe Experience Manager as a Cloud Service(AEMaaCS)、Cloud Manager パイプラインを使用するすべてのバージョン。
問題/症状
- Cloud Manager デプロイメントパイプラインは、長期間にわたって実行中の状態のままであり、完了しません。
- 環境準備状況チェックがブロックされ、パイプラインが進行できなくなります。
- インデックス作成ジョブのログには、次のようなエラーが表示されます。
Error while processing an index write operation java.io.IOException: Invalid byte range request for [ /oak:index/cqPageLucene-custom-1] ...
- 次のようなファイルシステムエラー:
java.nio.file.NoSuchFileException
/oak:index/cqPageLucene-custom-1や/oak:index/damAssetLucene-11-custom-4などのカスタム インデックス ノードは、現在のコードベースに存在しない場合でも、リポジトリに表示されます。- これらのインデックスノードをCRXDEで手動で削除するのは、再デプロイメント後に再度表示できるため、一時的なものに過ぎません。
原因
破損または一貫性のないカスタム Oak/Lucene インデックスが原因で環境準備チェックを完了できないため、パイプラインがブロックされます。 これにより、インデックス作成ジョブが終了せず、パイプラインが実行中の状態のままになります。 インデックスノードの手動による削除は永続的ではありません。適切に削除するには、コードベースを更新し、サポートされているインデックス管理アプローチを使用する必要があります。
解決策 resolution
問題を解決するには、次の手順に従います。
- インデックス ジョブ ログを確認し、
/oak:index/cqPageLucene-custom-1などのカスタム インデックスに関連するエラーを特定します。 インデックスノードがui.apps/src/main/content/jcr_root/_oak_index/のコードベースに存在するか、diff.jsonファイルに存在するかを確認します。 cqPageLucene-custom-1やdamAssetLucene-11-custom-4など、問題のあるインデックスの定義をリポジトリで検索します。 これらの定義を_oak_indexまたは任意のインデックスコンテンツパッケージから削除し、変更を確定します。- 簡易インデックス管理モデルを使用して、
/oak:index/diff.index/diff.jsonのすべてのカスタムインデックス変更を表現します。 Cloud Managerを使用して、更新されたコードをデプロイします。 - コードベースをクリーンアップし、意図されたカスタマイズのみが
diff.jsonに存在することを確認したら、Cloud Managerを通じて再デプロイします。 インデックスの破損が残っていない場合、パイプラインは正常に完了する必要があります。 - 問題が解決しない場合は、ログでファイルシステムエラーまたはLucene セグメントの破損を確認します。 問題のあるランタイムノードを削除して再デプロイすることで、影響を受けるインデックスを再構築します。
- 再デプロイメント後、パイプラインは正常に完了し、環境を準備完了としてマークする必要があります。
メモ
- プラットフォームは、必要に応じて新しい
*-custom-*ノードを生成し、未使用の古いバージョンを自動的に廃止します。 - CRXDEでインデックスノードを手動で削除することは避けてください。これは、コードベースまたは
diff.jsonが引き続きそれらを参照している場合は、後のデプロイメントでノードを再作成できるためです。
experience-cloud-kcs-help-kbarticles