Le workflow se répète des centaines de fois lors du chargement de ressources | AEM
Pour résoudre ce problème, vous pouvez soit ajouter l’autorisation delete sur les dossiers de ressources pour l’utilisateur, soit modifier les propriétés de/libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload.
Description description
Problème
Téléchargement de fichiers mp4 dans la console Assets par glisser-déposer, les workflows de chaque fichier mp4 se répètent des centaines de fois pendant des heures.
Par exemple, les workflows de Ressource de mise à jour de gestion des actifs numériques pour un mp4 ont été répétés 890 fois. Toutes les 5 secondes après la fin d’une instance de workflow et le début d’une nouvelle instance de workflow.
Ce problème générait des messages d’erreur similaires à ceux ci-dessous :
15.01.2018 10:40:06.628 *ERROR* [ XX.XXX.XX.XX [ 1586753090032] POST /content/dam/path/to/file.createasset.html HTTP/1.1] com.day.XX.XXX.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)
Un autre symptôme signalé est un clignotement rouge à l’écran pendant le chargement de la ressource.
Environnement
Adobe Experience Manager 6.1 SP1 (AEM 6.1 SP1)
Cause
Lorsque vous tentez de charger la ressource, l’utilisateur ne dispose pas de l’autorisation delete sur le dossier.
Par conséquent, lorsque l’utilisateur charge un fichier volumineux (5 Mo+), AEM charge le fichier en le divisant en plusieurs blocs stockés sous le noeud de ressource.
Une fois tous les blocs transférés, AEM regroupe les blocs en tant que fichier d’origine, lance le workflow Ressources de mise à jour de gestion des actifs numériques et efface les blocs.
Mais lorsque l’utilisateur ne dispose pas de l’autorisation delete, l’effacement des blocs échoue et, par conséquent, le téléchargement du fichier redémarre.
Messages spécifiés
ERROR * POST /content/XXX/*.createasset.html HTTP/1.1] com.XXX.XX.XXX.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
Résolution resolution
Résolutions
Il existe deux façons de résoudre ce problème :
Méthode de résolution 1
Ajoutez l’autorisation delete sur les dossiers de ressources pour l’utilisateur.
Méthode de résolution 2
Modifiez les propriétés de :/libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload
Pour augmenter le nombre minimal d’octets de chargement de bloc, augmentez chunkUploadMinFileSize.
Pour désactiver le téléchargement de blocs, définissez false sur chunkUploadSupported.