Entorno
Problema/Síntomas
Error al obtener InputStream
para blobId
Tiene un FileDataStore configurado en su sistema Adobe Experience Manager 6.x/Oak 1.x y en el archivo error.log verá "Error ocurrido al obtener InputStream para blobId".
1 2 |
10.09.2015 10:38:04.220 *ERROR* pool-9-thread-3 org.apache.sling.commons.scheduler.impl.QuartzScheduler Exception during job execution of org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@7fe7e8fa : Error occurred while obtaining InputStream for blobId add1dd8fc5093b27b1fae1b753cb48b24ef3231f#101983 java.lang.RuntimeException: Error occurred while obtaining InputStream for blobId add1dd8fc5093b27b1fae1b753cb48b24ef3231f#101983 |
---|
Este error significa que es posible que falten archivos del directorio del almacén de datos de Adobe Experience Manager. La pérdida de archivos del almacén de datos puede deberse a un fallo en la colección de residuos de Oak Blob, a una interrupción del espacio en disco, al disco o a la inestabilidad de la red compartida. O bien, podría deberse a que un usuario elimina erróneamente los archivos del servidor.
Para recuperar los archivos que faltan, siga los pasos a continuación.
1. Instale el CFP/SP más reciente
Puede encontrar las correcciones más recientes en Uso compartido de paquetes de Adobe.
2. Ejecute la comprobación de coherencia del almacén de datos
Usando oak-run jar 1.6.6 y superior, ejecute el siguiente comando:
java -jar oak-run-*.jar datastorecheck —consistency -ref —id —fds crx-quickstart/install/org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config —repoHome crx-quickstart/repository —store crx-quickstart/repository/datastore —dump temp —verbose —track
3. Crear una lista de rutas de los archivos que faltan
El siguiente paso para recuperar los archivos que faltan es compilar una lista completa de las rutas de los archivos que faltan.
a. En Linux o Unix: Utilice este comando para incluir la lista de archivos que faltan en un archivo missing_ds_files.txt:
| grep
"blobId"
consistency_check_output.txt |
grep
-Eo
"0-9a-f{40,200}"
|
awk
'{ print substr($1, 0,2) "/" substr($1, 3,2) "/" substr($1, 5,2) "/" $1 }'
|
sort
-u missing_ds_files.txt
|
| — |
| grep
"Error occurred while obtaining InputStream for blobId"
error.log* |
grep
-Eo
"0-9a-f{40,200}"
|
awk
'{ print substr($1, 0,2) "/" substr($1, 3,2) "/" substr($1, 5,2) "/" $1 }'
|
sort
-u missing_ds_files.txt
|
| — |
12/92/04/129204a6dd0ce2cd5ca19c721b6f52ee2b3630e2 9f/d8/38/9fd8386d20cf55e7e0024e18d0c7d4e8400454ee 7a/13/15/7a1315788f45dafd6630454f04183601682a9f80 28/37/d2/2837d24aed3ff223cd40e90222226c4ef2e2a0c6 |
---|
Las rutas de archivo del almacén de datos se construyen a partir del nombre del registro con 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:
java.lang.RuntimeException: Error occurred while obtaining InputStream for blobId add1dd8fc5093b27b1fae1b753cb48b24ef3231f#101983 |
---|
Si no encuentra 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 Adobe Experience Manager en funcionamiento y utilizar un comando como rsync para copiar cualquiera de los archivos que faltan en ellas. Por ejemplo, ejecutándolo 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/ |
---|
Revise cada una de las rutas de nodos enumeradas que hacen referencia a archivos del almacén de datos que faltan. Revise los recursos DAM que faltan o los archivos cargados en páginas con su usuario. Haga que vuelvan a cargar los que faltan y que necesiten. Cualquier cosa que no necesiten se puede eliminar de forma segura a través de la interfaz de usuario de Adobe Experience Manager. Si falta algo en /var/audit o /var/eventing puede ser borrado con seguridad. Para cualquier archivo del que no esté seguro, vaya here y póngase en contacto con el equipo de asistencia de AEM para obtener ayuda.
6. Reindexar todos los índices asíncronos de Oak
Dado que los archivos de índice se almacenan dentro del repositorio Oak, también podría ser posible que algunos archivos no estén en los índices basados en /oak:index lucene.
Los archivos que faltan no se notificarán en la comprobación de coherencia /system/console/repositorycheck ya que están ocultos de los pasos del repositorio. Desafortunadamente, estos archivos no coincidirían entre instancias de AEM diferentes.
Para corregir estas incoherencias, reindexe los índices asíncronos de Oak afectados.
ADVERTENCIA: Esta operación es extremadamente costosa y requerirá tiempo de inactividad prolongado, desde 10 minutos hasta varios días, para completarse según el volumen de contenido del sistema.
Para reindexar los índices asíncronos:
Descargue Oak-run 1.0.x que coincida con la versión que ha instalado en su entorno Oak: https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-run/
Cargue oak-run en el servidor de Adobe Experience Manager.
Detenga todas las instancias de Adobe Experience Manager.
Ejecute el siguiente comando correspondiente al almacenamiento Oak de su instancia de Adobe Experience Manager:
Comando TarMK:
java -Xmx4096m -jar /apps/staging/oak-run-*-*.jar checkpoints crx-quickstart/repository/segmentstore rm-all |
---|
1 | java -Xmx4096m -jar oak-run-*-*.jar checkpoints mongodb://localhost/aem-author rm-all |
---|
Debería ver mensajes de registro como los siguientes:
23.06.2015 14:26:23.070 *INFO* FelixStartLevel org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes: /oak:index/cqAcUUID, /oak:index/nodetype, /oak:index/deviceIdentificationMode, /oak:index/campaignpath, /oak:index/active, /oak:index/jcrFrozenMixinTypes 23.06.2015 14:26:23.517 *INFO* FelixStartLevel org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing Traversed #10000 /jcr:system/jcr:versionStorage/c8/5f ... 23.06.2015 14:28:51.999 *INFO* pool-8-thread-1 org.apache.jackrabbit.oak.plugins.index.IndexUpdate Indexing report - /oak:index/counter*(708) - /oak:index/authorizables*(159) - /oak:index/cqPageLucene*(1913) - /oak:index/ntBaseLucene*(444) - /oak:index/cqTagLucene*(512) - /oak:index/workflowDataLucene*(116) ... 23.06.2015 14:28:52.009 *INFO* pool-8-thread-1 org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Reindexing (async) completed for indexes: /oak:index/counter*(708), /oak:index/authorizables*(159), /oak:index/cqPageLucene*(1913), /oak:index/ntBaseLucene*(444), /oak:index/cqTagLucene*(512), /oak:index/workflowDataLucene*(116) in 30.36 s |
---|
23.06.2015 14:26:23.070 *INFO* FelixStartLevel org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes: /oak:index/cqAcUUID, /oak:index/nodetype, /oak:index/deviceIdentificationMode, /oak:index/campaignpath, /oak:index/active, /oak:index/jcrFrozenMixinTypes |
---|