環境
問題/症狀
當您發現類似以下的錯誤時,oak-run工具會有所幫助:
09.11.2017 13:42:17.512 *WARN* async-index-update-async org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore Error occurred while loading bytes from steam while fetching for id «record ID» java.util.concurrent.ExecutionException: java.io.IOException: org.apache.jackrabbit.core.data.DataStoreException: Record «record ID» does not exist Caused by: java.io.IOException: org.apache.jackrabbit.core.data.DataStoreException: Record «record ID» does not exist |
---|
不同於 /system/console/repositorycheck
UI, oak-run工具會檢查下方隱藏的Lucene索引檔案 /oak:
索引,以及其餘的內容路徑。 此工具允許您選擇將索引檔案還原到資料儲存,或僅重建損壞的索引,而不是重新索引所有索引。 此檔案記錄於 使用oak-run.jar管理索引 在AEM FoundationTutorials中。
下載 Oak-run jar 1.8.8 或更高版本到您的 AEM 伺服器。
執行以下命令 (但交換區段存放區和資料存放區的路徑以和您的環境相符):
java -jar oak-run-*.jar datastorecheck --consistency --ref --id --fds crx-quickstart/install/org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config --repoHome crx-quickstart/repository --store crx-quickstart/repository/segmentstore --dump temp --verbose --track
命令將輸出資料儲存一致性檢查。
使用輸出還原或修復任何缺少的檔案。 詳情如下 使用oak-run.jar管理索引 在AEM FoundationTutorials中。
DataStore的一致性檢查器還可以列出節點儲存中的所有blob引用以及資料儲存中可用的所有blob ID。 使用以下命令:
$ java -jar oak-run-*.jar datastorecheck --id --ref --consistency \
--store | \
--s3ds |--fds \
--dump \
--track
提供下列一或多個可用選項:
下列選項可供選擇:
更多相關資訊