O Modo de Espera a Frio gera o erro "O registro DataStoreException não existe"
Está funcionando conforme o projetado e não indica um problema com o armazenamento de dados de arquivos. Para confirmar que a ID do blob realmente não está ausente, siga as etapas na seção Resolução.
Descrição description
Ambiente
Adobe Experience Manager (AEM)
Problema
O Modo de espera forçado com o Armazenamento de dados de arquivo dedicado lança um aviso sobre a ID de blob ausente semelhante ao erro aqui:
*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)
Resolução resolution
Solução
Está funcionando conforme o projetado e não indica um problema com o armazenamento de dados de arquivos.
Para confirmar que a ID do blob não está realmente ausente, siga estas etapas:
- Por exemplo, use a ID de blob de exemplo exibida como ausente nos logs (Por exemplo:
cabdc49c6562afe71da796b57c2d1a86753091073f1935a2c49c20
). - Para esta ID de blob neste exemplo, o endereço do sistema de arquivos deve ser:
ca/bd/c4/9c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20
. - Pesquise o sistema de arquivos na instância stand-by e verifique se o arquivo nomeado está presente no Armazenamento de Dados do Arquivo.
- Em
/repository/datastore
, use o comandolist
(Por exemplo:ls -ald
):ls -ald ca/bd/c4/9c6562afe71da786753095026dfafff4d1073f1935a2c49c20
. - Você deve conseguir ver o arquivo e confirmar que a ID do blob não está realmente ausente.
Causa
Isso é apenas um aviso, não um erro. Ela vem do fato de que o Armazenamento de dados de arquivos não tem como verificar se um binário existe localmente, exceto tentando carregar a ID do blob. Se a ID for carregada, os logs não mostrarão esse aviso. No entanto, se não for encontrado, o standby saberá que precisa sincronizá-lo, portanto, é por isso que você vê esse tipo de aviso nos logs.