El flujo de trabajo se repite cientos de veces al cargar los recursos | AEM
Descripción description
Problema
Carga de archivos mp4 en Assets mediante arrastrar y soltar, los flujos de trabajo de cada archivo mp4 se repiten cientos de veces durante horas.
Por ejemplo, los flujos de trabajo de Recurso de actualización DAM para una mp4 repetida 890 veces. Cada 5 segundos después de que finalice una instancia de flujo de trabajo y se inicie una nueva instancia de flujo de trabajo.
Este problema generaba mensajes de error similares a los siguientes:
15.01.2018 10:40:06.628 *ERROR* XX.XXX.XX.XX 1515980405832 POST /content/dam/path/to/file.createasset.html HTTP/1.1 com.day.cq.dam.core.impl.servlet.CreateAssetServlet Error while creating new asset: Unable to commit changes to session.
org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session.
...
Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied
...
Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakAccess0000: Access denied
at org.apache.jackrabbit.oak.security.authorization.permission.PermissionValidator.checkPermissions(PermissionValidator.java:212)
at org.apache.jackrabbit.oak.security.authorization.permission.PermissionValidator.childNodeDeleted(PermissionValidator.java:168)
Otro síntoma del que se informó fue un parpadeo rojo en la pantalla durante la carga del recurso.
Entorno
AEM 6.1 SP1
Causa
El usuario que intentaba cargar el recurso no tiene la variable delete
en la carpeta .
Como resultado, cuando el usuario carga un archivo grande (5 MB+), AEM carga el archivo dividiéndolo en varios fragmentos que se almacenan bajo el nodo de recursos.
Una vez cargados todos los fragmentos, AEM consolida los fragmentos como el archivo original, inicia el flujo de trabajo de recursos de actualización DAM y borra los fragmentos.
Pero cuando el usuario no tiene la variable delete
, la eliminación de fragmentos falla y, como consecuencia, la carga de archivos se reinicia de nuevo.
Mensajes especificados
ERROR * POST /content/dam/*.createasset.html HTTP/1.1 com.day.cq.dam.core.impl.servlet.CreateAssetServlet Error while creating new asset: Unable to commit changes to session.
org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session.
Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied
Resolución resolution
Resoluciones
Hay dos maneras de resolver este problema:
Método de resolución 1
Agregue la variable delete
permiso en carpetas de recursos para el usuario.
Método de resolución 2
Cambiar las propiedades de:/libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload
Para aumentar el número mínimo de bytes de carga de bloques, incremente chunkUploadMinFileSize
.
Para desactivar la carga de bloques, establezca false en chunkUploadSupported
.