File d’attente de distribution bloquée avec AccessDeniedException

Lorsque vous tentez de répliquer le contenu de la page, XF ou d’autres ressources à l’aide de Quick Publish, de Gérer la publication ou de Répliquer, la file d’attente de distribution sur l’auteur est bloquée. Vous pouvez vérifier cela en cochant la file d’attente de distribution publish à partir de l’interface utilisateur de distribution (AEM > outils > Déploiement > Distribution). Suivez les étapes fournies dans ce document pour résoudre le problème.

Description description

Environnement

  • Experience Manager
  • Experience Manager as a Cloud Service

Problèmes/Symptômes

Lors de la tentative de réplication de contenu de page (ou XF et d’autres types de ressources) à l’aide de "Quick Publish", "Manage Publication" ou "Replicate", la file d’attente de distribution sur l’auteur est bloquée.

Pour ce faire, consultez la file d’attente de publication publish Distribution de l’interface utilisateur de distribution (AEM - Outils - Déploiement - Distribution) :






En sélectionnant la file d’attente Golden Publisher (entrée en gras dans la liste), des détails supplémentaires sont donnés, en particulier le PATH impliqué (il peut y avoir plusieurs éléments ici) :





En regardant l’onglet Logs, l’erreur suivante s’affiche :

2023/03/08 12:11:26:238 - INFO Demande acceptée avec le package de distribution PackageMessage(pubSlingId=a1133c97-6809-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, publishAgent=Name userId=replication-service, paths=[ /content/wknd/fr] , deepPaths=[ ] ) at offset=158705

2023/03/08 12:11:27:459 - AVERTISSEMENT - Message : tentative échouée (0/infini) d’importation du package de distribution PackageMessage(pubSlingId=a1133c97-6809-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f-9f4b c577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service, paths=[ /content/wknd/fr] , deepPaths=[ ] ) à offset=158705 à cause de 'javax.jcr.Access DeniedException : OakAccess000: Access denied', l’importateur réessayera ultérieurement,

Stacktrace: org.apache.sling.distribution.common.DistributionException: javax.jcr.AccessDeniedException: OakAccess000: Accès refusé

[]




Vous devez Effacer la file d’attente (ou supprimer cet élément) pour débloquer la file d’attente.

Résolution resolution

Bien que l’erreur soit javax.jcr.AccessDeniedException, il est possible qu’il n’y ait aucune relation avec l’ACL/les autorisations pour les utilisateurs du service de distribution, bien que cela doive être pris en compte si le scénario suivant ne s’applique pas à votre cas.

Diagnostics

L’erreur ci-dessus peut se produire dans certains cas, lorsque le contenu répliqué possède une configuration spécifique liée à la propriété spéciale jcr:lockIsDeep .

Pour confirmer le diagnostic, vous devrez inspecter chacun des chemins mentionnés avec l’un des outils suivants auxquels vous avez accès/applicable :

  1. CRX/DE pour les instances DEV
  2. l’ explorateur de référentiels
  3. création d’un module de contenu dans le gestionnaire de modules (cette option fait également partie de la résolution)

Ensuite, vous devez vérifier le noeud jcr:content pour chaque chemin d’accès trouvé dans l’interface utilisateur de la file d’attente de distribution et vérifier si :

  • Elle possède une propriété jcr:lockIsDeep="(Boolean)true"
  • Il n'a pas de propriété jcr:lockOwner="xxx"
  • ( it n'a pas de valeur mix:lockable dans jcr:mixinTypes)

Si c’est le cas, le problème est confirmé, puisque la propriété jcr:lockIsDeep ne doit pas être présente seule. Cette propriété doit toujours être définie conjointement avec le jcr:lockOwner lorsque Verrouillage d’une page.

Il n’est pas possible de définir uniquement la propriété jcr:lockIsDeep, même en utilisant l’API JCR. Par conséquent, la cause principale expliquant cette situation est principalement d’avoir installé un module de contenu corrompu avec cette seule propriété.

Résolution

Pour corriger le contenu, la seule solution consiste à installer dans votre Auteur un module dont les propriétés correctes sont définies sur le noeud correspondant.

Vous pouvez créer ce package à partir d’une autre instance ayant le contenu correspondant ou, si vous ne disposez que de ce contenu sur l’instance impactée, vous pouvez suivre les instructions suivantes :

  1. Générer un package sur l’instance rompue pour la page incorrecte
  2. Téléchargez le module
  3. Extrayez le .content.xml pour la page/jcr:content
  4. Supprimez manuellement la ligne avec le jcr:lockIsDeep
  5. Mettez à jour votre package avec le fichier .content.xml nouveau/fixe
  6. Téléchargez à nouveau et installez le package modifié.

Vérifiez à nouveau les propriétés de la page et testez correctement la réplication/la distribution.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f