Cold Secondaire renvoie l’erreur "L’enregistrement DataStoreException n’existe pas".

Dernière mise à jour : 2022-11-15

Description

Environnement
Adobe Experience Manager

Problème
Cold Secondaire avec la banque de données de fichier dédiée génère un avertissement sur l’ID d’objet blob manquant, similaire à l’erreur ici :

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

java.util.concurrent.ExecutionException: java.io.IOException: org.apache.jackrabbit.core.data.DataStoreException: Record f68a92b34779bbd194184251ec916370f3ebd301d6e32a8980aad070d57a1845 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 cabdc49c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20 does not exist

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

Cause
Ce n'est qu'un avertissement, pas une erreur.

Cela vient du fait que l’entrepôt de données de fichier n’a aucun moyen de vérifier si un fichier binaire existe localement, sauf en essayant de charger l’ID d’objet blob.
Si l’ID est chargé, les journaux n’affichent pas cet avertissement.
Cependant, s'il n'est pas trouvé, le Secondaire sait qu'il doit le synchroniser, c'est pourquoi vous voyez ce type d'avertissement dans les logs.

Résolution

Solution
Cela fonctionne comme prévu et n’indique pas de problème avec l’entrepôt de données de fichiers.

Pour confirmer que l’ID d’objet blob n’est pas absent, procédez comme suit :

  1. Par exemple, prenez votre exemple d’ID d’objet blob qui s’affiche comme manquant dans les journaux (par exemple : cabdc49c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20).
  2. Pour cet ID d’objet blob dans cet exemple, l’adresse du système de fichiers doit être : ca/bd/c4/9c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20.
  3. Recherchez le système de fichiers sur l’instance Secondaire et vérifiez si le fichier nommé est présent dans l’entrepôt de données des fichiers.
  4. Within /repository/datastore, utilisez le list (Par exemple : ls -ald), commande : ls -ald ca/bd/c4/9c6562afe71da796b57c2d1a6a3495026dfafff4d1073f1935a2c49c20.
  5. Vous devriez être en mesure de voir le fichier et de confirmer que l’ID d’objet blob n’est pas absent.

Sur cette page