由於自訂Oak/Lucene索引問題,AEM as a Cloud Service管道卡在執行狀態

本文說明如何解決Adobe Experience Manager (AEM) as a Cloud Service部署管道因自訂Oak/Lucene索引問題而停滯於執行狀態的情況。

說明 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

請依照下列步驟解決問題:

  1. 檢閱索引工作記錄檔並識別與自訂索引相關的錯誤,例如/oak:index/cqPageLucene-custom-1。 確認索引節點存在於ui.apps/src/main/content/jcr_root/_oak_index/下的程式碼基底中或diff.json檔案中。
  2. 搜尋存放庫以找出有問題的索引(例如cqPageLucene-custom-1damAssetLucene-11-custom-4)的定義。 從_oak_index或任何索引內容套件中刪除這些定義,然後認可變更。
  3. 使用簡化的索引管理模型來表示/oak:index/diff.index/diff.json中的所有自訂索引變更。 透過Cloud Manager部署更新的程式碼。
  4. 在清除程式碼基底並確認在diff.json中只有預期的自訂專案之後,請透過Cloud Manager重新部署。 如果沒有任何索引損毀,則管道應該會成功完成。
  5. 如果問題仍然存在,請檢閱記錄檔中的檔案系統錯誤或Lucene區段損毀。 移除有問題的執行階段節點並重新部署,以重建受影響的索引。
  6. 重新部署後,管道應成功完成,環境應標籤為就緒。

附註

  • 平台會視需要產生新的*-custom-*節點,並隨著時間自動淘汰未使用的舊版本。
  • 避免在CRXDE中手動刪除索引節點作為永久解決方案,因為如果程式碼基底或diff.json仍參考節點,則可以在以後的部署中重新建立節點。

相關閱讀

內容搜尋與索引

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