Coda di distribuzione bloccata con AccessDeniedException

Ultimo aggiornamento: 2023-05-03

Descrizione

Ambiente

  • Experience Manager
  • Experience Manager as a cloud service

Problemi/Sintomi
Quando si tenta di replicare alcuni contenuti di pagina (o XF e altri tipi di risorse) utilizzando "Pubblicazione rapida", "Gestisci pubblicazione" o "Replica", la coda di distribuzione sull'autore ottiene Bloccato.
 
Ciò può essere osservato controllando il pubblicare Coda di distribuzione dall’interfaccia utente di distribuzione (AEM - Strumenti - Distribuzione - Distribuzione):

 
Selezionando la coda dell'Editore dorato (voce in grassetto dall'elenco), vengono forniti più dettagli e in particolare i soggetti coinvolti PERCORSO (possono essere presenti più elementi qui):

 
Esaminare Registri tab mostrerà il seguente errore corrispondente:
03/03/2023 12:11:26:238 - INFO - Richiesta accettata con il pacchetto di distribuzione PackageMessage(pubSlingId=a1133c97-6809-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1 678277486031-63159f4b-c577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service, paths=/content/wknd/fr, 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-1677 8277486031-63159f4b-c577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=63 30, pubAgentName=publish, userId=replication-service, paths=/content/wknd/fr, deepPaths=) at offset=158705 a causa di 'javax.jcr.AccessDeniedException: OakAccess0000: Accesso negato. Verrà eseguito un nuovo tentativo dell'importatore in seguito, Stacktrace: org.apache.sling.distribution.common.DistributionException: javax.jcr.AccessDeniedException: OakAccess0000: Accesso negato…
 
Devi Cancella coda (o rimuovi quell'elemento) per sbloccare la coda.

Risoluzione

Nonostante l'errore javax.jcr.AccessDeniedException, probabilmente non esiste alcuna relazione con l'ACL / autorizzazioni per gli utenti del servizio di distribuzione, anche se questo dovrebbe essere considerato se lo scenario seguente non si applica al tuo caso.

Diagnostica

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

Per confermare la diagnosi, è necessario controllare ciascuno dei percorsi indicati con uno dei seguenti strumenti a cui è possibile accedere/è applicabile:

  1. CRX/DE per le istanze DEV
  2. la Browser del repository
  3. creazione di un pacchetto di contenuti in Gestione pacchetti (questa opzione fa anche parte della risoluzione)

Poi devi controllare il jcr:content per ogni percorso trovato nell’interfaccia utente della coda di distribuzione e verifica se:

  • It does hanno jcr:lockIsDeep="(Boolean)true" property
  • It non hanno jcr:lockOwner="xxx" property
  • (it non hanno mix:lockable nel jcr:mixinTypes)

Se questo è il caso, il problema viene confermato, dal momento che il jcr:lockIsDeep la proprietà non deve essere presente da sola. Questa proprietà deve sempre essere impostata insieme al jcr:lockOwner quando Blocco una pagina.

Non è possibile impostare solo il jcr:lockIsDeep , anche utilizzando l'API JCR, quindi la causa principale che spiega questa situazione è principalmente l'aver installato un pacchetto di contenuto "danneggiato" con quella singola proprietà.

Risoluzione

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

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

  1. genera un pacchetto sull'istanza interrotta per la pagina difettosa
  2. scarica il pacchetto
  3. estrarre .content.xml per page/jcr:content
  4. rimuovi manualmente la linea con jcr:lockIsDeep
  5. aggiorna il pacchetto con il nuovo/fisso .content.xml
  6. ricarica e installa il pacchetto modificato

Puoi quindi controllare nuovamente le proprietà della pagina e testare correttamente la replica/distribuzione.

In questa pagina