冷待命擲回「DataStoreException記錄不存在」錯誤

此功能已如期運作,並不表示檔案資料存放區有問題。 若要確認實際上並未遺失blob ID,請依照「解析度」一節中的步驟操作。

說明 description

環境
Adobe Experience Manager (AEM)

問題
具有專用檔案資料存放區的冷待命在遺失blob id時擲回警告,類似於以下錯誤:

*WARN* [ standby-run-1]  org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore Error occurred while loading bytes from steam while fetching for id xxxxxxxxxx

java.util.concurrent.ExecutionException: java.io.IOException: org.apache.jackrabbit.core.data.DataStoreException: Record xxxxxxxx does not exist

    at org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.load(CacheLIRS.java:1017) [ org.apache.jackrabbit.oak-core-spi:1.10.3]

...

Caused by: org.apache.jackrabbit.core.data.DataStoreException: Record xxxxxxxx does not exist

    at org.apache.jackrabbit.core.data.AbstractDataStore.getRecord(AbstractDataStore.java:59)

解決方法 resolution

解決方案
此功能已如期運作,並不表示檔案資料存放區有問題。

若要確認Blob ID實際上並未遺失,請依照下列步驟操作:

  1. 例如,取用記錄中顯示為遺失的範例blob id (例如: cabdc49c6562afe71da796b57c2d1a86753091073f1935a2c49c20)。
  2. 在此範例中,這個blob id的檔案系統位址應該是: ca/bd/c4/9c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20
  3. 在待命執行個體上搜尋檔案系統,並檢查命名的檔案是否存在於檔案資料存放區中。
  4. /repository/datastore內,使用list (例如: ls -ald)命令: ls -ald ca/bd/c4/9c6562afe71da786753095026dfafff4d1073f1935a2c49c20
  5. 您應該能夠檢視檔案,並確認實際上並未遺失blob id。

原因

這只是警告,並非錯誤。 這是因為檔案資料存放區無法驗證本機是否存在二進位檔案,除非嘗試載入blob id。 如果id已載入,記錄檔不會顯示此警告。 但是,如果找不到,待命就會知道它必須同步處理,因此您會在記錄中看到這類警告。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f