Coda di distribuzione bloccata con AccessDeniedException

Quando si tenta di replicare il contenuto della pagina, XF o altre risorse tramite Quick Publish, Gestisci pubblicazione o Replica, la coda di distribuzione nell’istanza di authoring si blocca. Puoi verificare questa situazione controllando la coda di distribuzione publish dall'interfaccia utente di distribuzione (AEM > Strumenti > Distribuzione > Distribuzione). Per risolvere il problema, segui i passaggi descritti in questo documento.

Descrizione description

Ambiente

  • Experience Manager
  • Experience Manager as a cloud service

Problemi/Sintomi

Quando si tenta di replicare del contenuto di una pagina (o XF e altre risorse di altro tipo) utilizzando "Quick Publish", "Manage Publication" (Gestisci pubblicazione) o "Replicate" (Replica), la coda di distribuzione nell'ambiente di authoring ottiene Blocked.

Ciò può essere osservato controllando la coda di pubblicazione distribuzione dall'interfaccia utente di distribuzione (AEM - Strumenti - Distribuzione - Distribuzione):






Selezione della coda del server di pubblicazione Golden (voce in grassetto dall'elenco), vengono forniti ulteriori dettagli e in particolare il PERCORSO interessato (possono essere presenti più elementi):





L'analisi della scheda Registri mostrerà il seguente errore corrispondente:

2023/03/08 12:11:26:238 - INFO - Richiesta accettata con il pacchetto di distribuzione PackageMessage(pubSlingId=a133c97-688 9-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service, percorsi=[ /content/wknd/fr{1 3} , deepPaths=[ ] ) a offset=158705

2023/03/08 12:11:27:459 - AVVERTENZA - Messaggio: tentativo non riuscito (0/infinito) di importare il pacchetto di distribuzione PackageMessage(pubSlingId=a1133c97-6809-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c57 -4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service, paths=[ /content/wknd/fr] , deepPaths=[ ] ) a offset=158705 a causa di 'javax.jcr.AccessDeniedException: OakAccess000: accesso negato', l'importazione riprova più tardi,

Traccia dello stack: org.apache.sling.distribution.common.DistributionException: javax.jcr.AccessDeniedException: OakAccess0000: Accesso negato

[] ]




Per sbloccare la coda è necessario Cancellare la coda (o rimuovere l'elemento).

Risoluzione resolution

Nonostante l'errore sia javax.jcr.AccessDeniedException, è possibile che non vi sia alcuna relazione con l'ACL o le autorizzazioni per gli utenti del servizio di distribuzione, anche se questo dovrebbe essere preso in considerazione se il seguente scenario non si applica al caso.

Diagnostica

L'errore di cui sopra può verificarsi in alcune situazioni, quando il contenuto replicato ha una configurazione specifica correlata alla proprietà speciale jcr:lockIsDeep.

Per confermare la diagnostica, è necessario controllare ogni percorso indicato con uno dei seguenti strumenti a cui è possibile accedere/è applicabile:

  1. CRX/DE per istanze DEV
  2. il Browser dell'archivio
  3. creazione di un pacchetto di contenuti in Gestione pacchetti (anche questa opzione fa parte della risoluzione)

Quindi devi controllare il nodo jcr:content per ogni percorso trovato nell'interfaccia utente della coda di distribuzione e verificare se:

  • ha una proprietà jcr:lockIsDeep="(Boolean)true"
  • non ha una proprietà jcr:lockOwner="xxx"
  • ( it does not have a mix:lockable value in jcr:mixinTypes)

In questo caso, il problema viene confermato, poiché la proprietà jcr:lockIsDeep non deve essere presente da sola. Questa proprietà deve sempre essere impostata congiuntamente a jcr:lockOwner quando Blocca una pagina.

Non è possibile impostare solo la proprietà jcr:lockIsDeep, anche utilizzando l'API JCR, pertanto la causa principale che spiega questa situazione è principalmente l'installazione di un pacchetto di contenuti danneggiato con tale singola proprietà.

Risoluzione

Per correggere il contenuto, l’unica soluzione consiste nell’installare nell’Autore un pacchetto con le proprietà corrette impostate sul nodo corrispondente.

Puoi creare il pacchetto da un’altra istanza con il contenuto corrispondente oppure, se disponi solo di questo contenuto nell’istanza interessata, puoi seguire queste istruzioni:

  1. Genera un pacchetto sull'istanza interrotta per la pagina errata
  2. Scaricare il pacchetto
  3. Estrai .content.xml per page/jcr:content
  4. Rimuovi manualmente la riga con jcr:lockIsDeep
  5. Aggiorna il pacchetto con il nuovo/corretto .content.xml
  6. Ricarica e installa il pacchetto modificato

Controlla nuovamente le proprietà della pagina e verifica correttamente la replica/distribuzione.

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