Cola de distribución bloqueada con AccessDeniedException

Al intentar replicar contenido de página, XF u otros recursos mediante Quick Publish, Administrar publicación o Replicar, la Cola de distribución del autor se bloquea. AEM Puede comprobarlo comprobando la cola de distribución publish desde la interfaz de usuario de distribución (> herramientas > implementación > distribución). Siga los pasos proporcionados en este documento para resolver el problema.

Descripción description

Entorno

  • Experience Manager
  • Experience Manager as a cloud service

Problemas/Síntomas

Al intentar replicar algún contenido de página (o XF y otro tipo de recursos) usando "Quick Publish", "Manage Publication" o "Replicate", la cola de distribución en Autor se bloquea.

AEM Esto se puede observar comprobando la cola de distribución publish desde la interfaz de usuario de distribución (herramientas - implementación - distribución):






Al seleccionar la cola de Golden Publisher (entrada en negrita de la lista), se proporcionan más detalles y, en particular, la RUTA involucrada (puede haber varios elementos aquí):





Al mirar la pestaña Registros, se mostrará el siguiente error correspondiente:

2023/03/08 12:11:26:238 - INFORMACIÓN - Solicitud aceptada con el paquete de distribución PackageMessage(pubSlingId=a1111111133333} 7-6809-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service,=[ /content/wknd/fr] , deepPaths=[ ] ) en offset=158705

2023/03/08 12:11:27:459 - WARN - Mensaje: Error (0/infinite) al importar el paquete de distribución PackageMessage(pubSlingId=a1133c97-6809-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159 f4b-c577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service, paths=[ /content/wknd/fr] , deepPaths=[ ] ) en offset=158705 debido a 'javax.jcr.AccessDeniedException: Oak Acceso0000: acceso denegado, el importador lo volverá a intentar más tarde,

Stacktrace: org.apache.sling.distribution.common.DistributionException: javax.jcr.AccessDeniedException: OakAccess0000: Acceso denegado

[]




Debe Borrar cola (o quitar ese elemento) para desbloquear la cola.

Resolución resolution

A pesar de que el error es javax.jcr.AccessDeniedException, es posible que no haya relación con la ACL / permisos para los usuarios del servicio de distribución, aunque esto debe tenerse en cuenta si el siguiente escenario no se aplica a su caso.

Diagnóstico

El error anterior puede ocurrir en algunas situaciones en las que el contenido replicado no tiene una configuración específica relacionada con la propiedad especial jcr:lockIsDeep.

Para confirmar el diagnóstico, tendrá que inspeccionar cada una de las rutas mencionadas con cualquiera de las siguientes herramientas a las que puede tener acceso o que son aplicables:

  1. CRX/DE para instancias de DEV
  2. el Explorador del repositorio
  3. creación de un paquete de contenido en el Administrador de paquetes (esta opción también forma parte de la resolución)

A continuación, debe comprobar el nodo jcr:content de cada ruta encontrada en la interfaz de usuario de la cola de distribución y comprobar si:

  • tiene tiene una propiedad jcr:lockIsDeep="(Boolean)true"
  • No tiene una propiedad jcr:lockOwner="xxx"
  • ( it does not have a mix:lockable value in the jcr:mixinTypes)

Si este es el caso, el problema se confirma, ya que la propiedad jcr:lockIsDeep no debe estar presente sola. Esta propiedad siempre se debe establecer junto con jcr:lockOwner al bloquear una página.

No es posible establecer solamente la propiedad jcr:lockIsDeep, ni siquiera usando la API JCR, por lo que la causa principal que explica esta situación es haber instalado un paquete de contenido corrupto con esa sola propiedad.

Resolución

Para corregir el contenido, la única solución es instalar un paquete en Author que tenga las propiedades correctas establecidas en el nodo correspondiente.

Puede crear ese paquete a partir de otra instancia que tenga el contenido correspondiente o si solo tiene este contenido en la instancia afectada, puede seguir estas instrucciones:

  1. Genere un paquete en la instancia dañada para la página defectuosa
  2. Descargar el paquete
  3. Extraiga .content.xml para la página/jcr:content
  4. Quitar manualmente la línea con jcr:lockIsDeep
  5. Actualice el paquete con el archivo .content.xml nuevo/fijo
  6. Vuelva a cargar e instale el paquete modificado

Vuelva a comprobar las propiedades de la página y pruebe correctamente la replicación/distribución.

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