Problema

Verá uno de estos mensajes en su error.log:

*WARN * BLOBInDataStore: getSize for a586f73ec77fba3135021af01c7f09d972eb3e01 failed (BLOBInDataStore.java, line 95)
org.apache.jackrabbit.core.data.DataStoreException: Record not found: a586f73ec77fba3135021af01c7f09d972eb3e01

org.apache.jackrabbit.core.data.DataStoreException: Failed to read record modified date: /opt/author/crx-quickstart/repository/shared/repository/datastore/6f/b6/14/6fb61425b9187a97f9404cee290cc255177c702e

Caused by: java.io.FileNotFoundException: /opt/author/crx-quickstart/repository/shared/repository/datastore/6f/b6/14/6fb61425b9187a97f9404cee290cc255177c702e
at org.apache.jackrabbit.core.data.LazyFileInputStream.<init>(LazyFileInputStream.java:63)
at org.apache.jackrabbit.core.data.FileDataRecord.getStream(FileDataRecord.java:57)
... 114 more

Solución

Este error significa que faltan archivos en su directorio de almacén de datos de AEM  Consulte esta documentación para más detalles sobre qué es el almacén de datos y cómo funciona. La pérdida de archivos del almacén de datos puede deberse a un fallo en la colección de residuos del almacén de datos, a una interrupción del espacio en disco, a la inestabilidad del disco o de la red compartida. O bien, podría deberse a que un usuario ha eliminado los archivos del servidor por error.

Para recuperar los archivos que faltan, siga los pasos que se indican a continuación.

1. Instale la última corrección de CRX

Antes de continuar, si está usando CQ5.4 o versiones anteriores, descargue la última versión de correcciones de CRX e instálela si su instancia de CQ se está iniciando.

Puede encontrar las últimas correcciones en Adobe Package Share.

2. Corrección de errores "Archivo no encontrado:"

Si faltan archivos tar como se describe en este artículo, entonces trate ese problema primero.  Si faltan archivos tar, es probable que aparezcan errores como "Archivo no encontrado:" en su archivo error.log.

Por ejemplo, estos son algunos errores vistos durante el GC del almacén de datos debido a la falta de un archivo tar:

27.02.2012 13:55:01 *WARN * TarSet: File not found: 4650 for entry 6c18a73a-aba1-44b8-93c2-90fb49cac5e5 pos:4650/148692992 length: 669 from /opt/author/crx-quickstart/repository/workspaces/crx.default/copy [4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663].
27.02.2012 13:55:38 *INFO * FileDataStore: Deleting old file /opt/author/crx-quickstart/repository/shared/repository/datastore/6f/b6/14/6fb61425b9187a97f9404cee290cc255177c702e modified: 2012-02-23 10:06:58.0 length: 6555 (FileDataStore.java, line 315)
28.02.2012 10:49:46 *WARN * BLOBInDataStore: getSize for 6fb61425b9187a97f9404cee290cc255177c702e failed (BLOBInDataStore.java, line 95)
org.apache.jackrabbit.core.data.DataStoreException: Failed to read record modified date: /opt/author/crx-quickstart/repository/shared/repository/datastore/6f/b6/14/6fb61425b9187a97f9404cee290cc255177c702e

3. Ejecute una verificación de consistencia del Almacén de datos

La única manera de obtener una lista completa de todos los archivos perdidos en el almacén de datos es ejecutando una Comprobación de Consistencia del Almacén de datos.  Si su instancia de AEM puede iniciarse, siga estos pasos en la instancia en ejecución:

  1. Vaya a CRX Explorer e inicie sesión como administrador.
    - http://<host>:<port>/crx (CQ5.4/CRX2.2 y versiones anteriores)
    - http://<host>:<port>/crx/explorer/index.jsp (CQ5.5/CRX2.3 y versiones posteriores)
  2. Haga clic en Configuración del repositorio.
  3. Haga clic en Comprobar repositorio.
  4. Seleccione Consistencia de almacén de datos.
  5. Haga clic en Ejecutar.
  6. Mantenga su navegador abierto mientras dure el proceso. Solo envía mensajes a la pantalla cuando se encuentra un error y el proceso no escribe ningún mensaje en el archivo de registro.  Los mensajes de error informan la ruta del nodo desde el que se hizo referencia al registro del almacén de datos y el ID del registro del archivo que falta.
  7. Cuando el proceso finalice, copie la salida a un archivo de texto consistency_check_output.txt y continúe con el siguiente paso.

4. Cree una lista de rutas de los archivos perdidos

El siguiente paso para recuperar los archivos que faltan consiste en compilar una lista completa de las rutas de los archivos que faltan.

1. Busque el resultado de comprobación de coherencia para todas las incidencias de error Registro no encontrado.

a. En Linux o Unix: Utilice este comando para dar salida a la lista de archivos ausentes a un archivo missing_ds_files.txt:

grep "Record not found:" consistency_check_output.txt | grep -Eo "[0-9a-f]{40}" | awk '{ print substr($1, 0,2) "/" substr($1, 3,2) "/" substr($1, 5,2) "/" $1 }' | sort -u > missing_ds_files.txt

** Si su instancia de AEM no se está iniciando debido a los errores Registro no encontrado, busque en sus archivos de registro en crx-quickstart/logs todas las ocurrencias del error Registro no encontrado:

grep "Record not found:" error.log* | grep -Eo "[0-9a-f]{40}" | awk '{ print substr($1, 0,2) "/" substr($1, 3,2) "/" substr($1, 5,2) "/" $1 }' | sort -u > missing_ds_files.txt

Si el comando funcionó correctamente, entonces el contenido de missing_ds_files.txt sería similar al siguiente:

12/92/04/129204a6dd0ce2cd5ca19c721b6f52ee2b3630e2
9f/d8/38/9fd8386d20cf55e7e0024e18d0c7d4e8400454ee
7a/13/15/7a1315788f45dafd6630454f04183601682a9f80
28/37/d2/2837d24aed3ff223cd40e90222226c4ef2e2a0c6

  b. En Windows:  Utilice un editor de texto como Textpad o Notepad++ para encontrar todas las ocurrencias de “Registro no encontrado”.  Luego, después de encontrar todas estas incidencias, extraiga los nombres de archivo usando una macro, escribiendo un script o copiando y creando manualmente los nombres de archivo en un nuevo archivo de texto.

Las rutas de archivo del almacén de datos se construyen a partir del nombre del registro en este formato:
{primeros dos caracteres del registro id}/{segundos dos caracteres del registro id}/{terceros dos caracteres del registro id}/{registro id}/

Por ejemplo, en este error:

error.log: org.apache.jackrabbit.core.data.DataStoreException: Record not found: 129204a6dd0ce2cd5ca19c721b6f52ee2b3630e2

el identificador de registro es 129204a6dd0ce2cd5ca19c721b6f52ee2b3630e2 y la ruta del archivo es 12/92/04/129204a6dd0ce2cd5ca19c721b6f52ee2b3630e2

5. Recupere los archivos perdidos

Ahora utilice los resultados del último paso para buscar los mismos archivos en otras instancias de AEM (CQ) de su entorno.  Dado que los archivos del almacén de datos se almacenan de forma única, puede copiarlos desde otras instancias AEM de su entorno.

Si no puede encontrar algunos de los archivos en otras instancias, busque las copias de seguridad y restablézcalas desde allí si es posible.

En Linux, puede iniciar sesión en cada una de las instancias de AEM en funcionamiento y usar un comando como rsync para copiar cualquiera de los archivos faltantes que existan en ellas.  Por ejemplo, si lo ejecuta desde el directorio del almacén de datos en el servidor que tiene los archivos que faltan:

rsync -avR --files-from=missing_ds_files.txt . user@hostname-of-server-missing-files:/path/to/crx-quickstart/repository/repository/datastore/

El comando ejecuta un rsync que copia todos los archivos enumerados en missing_ds_files.txt que existen en el servidor. 

6. Limpie las referencias de archivos irrecuperables

Si no pudo recuperar algunos de los archivos de la copia de seguridad o de otras instancias de AEM (CQ), limpie o corrija las referencias incorrectas del almacén de datos.  Vuelva a ejecutar la comprobación de coherencia del almacén de datos, tal y como lo hicimos en el paso 4.  Obtendrá una lista actual de archivos que faltan.

Revise todas las rutas de nodos enumeradas que hacen referencia a los archivos que faltan en el almacén de datos.  Revise los recursos DAM que faltan o los archivos subidos a las páginas con su usuario.  Pídales que vuelvan a cargar aquellos que falten y necesiten.  Cualquier cosa que no necesiten puede ser borrada de forma segura a través de la interfaz de usuario de AEM.  Si falta algo en /var/audit o /var/eventing, se puede borrar de forma segura.  Para cualquier archivo del que no esté seguro, vaya aquí y póngase en contacto con el equipo de soporte de AEM para obtener ayuda.

Se aplica a

CRX 2.2, 2,3

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea