Errore "Il record di eccezione DataStoreException non esiste" generato in modalità standby a freddo
Questo funziona come previsto e non indica un problema con il file datastore. Per verificare che l’ID BLOB non sia effettivamente mancante, segui i passaggi descritti nella sezione Risoluzione.
Descrizione description
Ambiente
Adobe Experience Manager (AEM)
Problema
Lo standby a freddo con archivio dati file dedicato genera un avviso sull’ID BLOB mancante simile all’errore qui:
*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)
Risoluzione resolution
Soluzione
Questo funziona come previsto e non indica un problema con il file datastore.
Per verificare che l’ID BLOB non sia effettivamente mancante, effettua le seguenti operazioni:
- Prendi ad esempio l'ID BLOB di esempio che risulta mancante nei registri (ad esempio:
cabdc49c6562afe71da796b57c2d1a86753091073f1935a2c49c20
). - Per questo ID BLOB in questo esempio, l'indirizzo del file system deve essere:
ca/bd/c4/9c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20
. - Cercare il file system nell'istanza in standby e verificare se il file denominato è presente nell'archivio dati dei file.
- In
/repository/datastore
, utilizzare il comandolist
, ad esempiols -ald
,ls -ald ca/bd/c4/9c6562afe71da786753095026dfafff4d1073f1935a2c49c20
. - Dovresti essere in grado di visualizzare il file e confermare che l’ID BLOB non sia effettivamente mancante.
Causa
Questo è solo un avviso, non un errore. Deriva dal fatto che il file datastore non ha modo di verificare se esiste localmente un binario, se non tentando di caricare l’ID BLOB. Se l’ID viene caricato, i registri non mostrano questo avviso. Tuttavia, se non viene trovato, lo standby sa che deve sincronizzarlo, quindi questo è il motivo per cui si vede questo tipo di avviso nei registri.