冷待机引发“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