Verteilungswarteschlange mit AccessDeniedException blockiert
Beim Versuch, Seiteninhalte, XF oder andere Ressourcen mit Quick Publish zu replizieren, Veröffentlichungen verwalten oder zu replizieren, wird die Verteilungswarteschlange auf der Autoreninstanz blockiert. Sie können dies überprüfen, indem Sie in der Verteilungs UI die Veröffentlichungs-/Verteilungswarteschlange verwenden (AEM > Tools > Bereitstellung > Verteilung). Befolgen Sie die in diesem Dokument angegebenen Schritte, um das Problem zu beheben.
Beschreibung description
Umgebung
- Experience Manager
- Experience Manager as a Cloud Service
Probleme/Symptome
Beim Versuch, Seiteninhalte (oder XF und andere Ressourcen) mit „Quick Publish", „Veröffentlichung verwalten“ oder „Replizieren“ zu replizieren, wird die Verteilungswarteschlange auf der Autoreninstanz blockiert.
Dies lässt sich feststellen, indem Sie in der -Benutzeroberfläche AEM - Tools - Bereitstellung - Verteilung) die Option Veröffentlichungs-/-Warteschlange überprüfen:
Auswahl der Warteschlange „Golden Publisher“ (Eintrag fett aus der Liste) werden weitere Details angegeben, insbesondere der beteiligte PATH (hier können mehrere Elemente vorhanden sein):
Wenn Sie die Registerkarte Logs durchgehen, wird der folgende entsprechende Fehler angezeigt:
2023/03/08 12:11:26:238 - INFO - Anfrage mit Verteilungspaket akzeptiert PackageMessage(pubSlingId=a1133c97-6809-411e-a435-4ea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c577-4079-8741-d41660597[ ] [ ] 158705 d20, pkgType=journal_filevault, pkgLength=6330, pub=name=pu=name,
2023/03/08 12:11:27:459 - WARNUNG - Nachricht: Fehlgeschlagener Versuch (0/unendlich), das Verteilungspaket zu importierenNachricht(pubSlingId=a1133c97-6809-411e-a435-4ea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service, path=[ /content/wknd/fr] , deepPaths=[ ] ) bei offset=158705 aufgrund von 'javax.jcr.AccessDeniedException: OakAccess000
Stacktrace: org.apache.sling.distribution.common.DistributionException: javax.jcr.AccessDeniedException: OakAccess0000: Zugriff verweigert[ …]
Sie müssen Warteschlange löschen (oder dieses Element entfernen), um die Blockierung der Warteschlange aufzuheben.
Auflösung resolution
Trotz des javax.jcr.AccessDeniedException Fehlers besteht möglicherweise keine Beziehung mit der ACL / den Berechtigungen für die Benutzer des Verteilungs-Services, obwohl dies berücksichtigt werden sollte, wenn das folgende Szenario nicht auf Ihren Fall zutrifft.
Diagnose
Der obige Fehler kann in einigen Fällen auftreten, wenn der replizierte Inhalt keine bestimmte Konfiguration im Zusammenhang mit der speziellen Eigenschaft jcr:lockIsDeep aufweist.
Um die Diagnose zu bestätigen, müssen Sie jeden der genannten Pfade mit einem der folgenden Tools überprüfen, auf die Sie zugreifen können/die anwendbar sind:
- CRX/DE für Entwicklungsinstanzen
- den Repository-Browser
- Erstellen eines Inhaltspakets im Package Manager (diese Option ist auch Teil der Auflösung)
Anschließend müssen Sie den jcr:content für jeden Pfad in der Verteilungswarteschlangen-Benutzeroberfläche überprüfen und überprüfen, ob:
- Sie hat eine
jcr:lockIsDeep=„(boolean)true“ Eigenschaft - Es hat keine
jcr:lockOwner="xxx"Eigenschaft - ( es nicht hat einen
mix:lockableWert imjcr:mixinTypes)
Wenn dies der Fall ist, wird das Problem bestätigt, da die jcr:lockIsDeep-Eigenschaft nicht allein vorhanden sein sollte. Diese Eigenschaft sollte immer zusammen mit dem jcr:lockOwner festgelegt werden, wenn eine Seite gesperrt.
Es ist nicht möglich, nur die jcr:lockIsDeep-Eigenschaft festzulegen, selbst nicht mithilfe der JCR-API. Die Grundursache für diese Situation ist daher meist die Installation eines beschädigten Inhaltspakets mit dieser einzigen Eigenschaft.
Lösung
Um den Inhalt zu beheben, installieren Sie in Ihrer Autoreninstanz nur ein Paket, für das die richtigen Eigenschaften auf dem entsprechenden Knoten festgelegt sind.
Sie können dieses Paket entweder aus einer anderen Instanz mit dem entsprechenden Inhalt erstellen oder wenn Sie diesen Inhalt nur auf der betroffenen Instanz haben, können Sie den folgenden Anweisungen folgen:
- Generieren eines Pakets in der fehlerhaften Instanz für die fehlerhafte Seite
- Paket herunterladen
- Extrahieren Sie die
.content.xmlfür die Seite/jcr:content - Entfernen Sie die Zeile mit dem Befehl jcr:lockIsDeep
- Aktualisieren Sie Ihr Paket mit der neuen/festen .content.xml
- Das geänderte Paket erneut hochladen und installieren
Überprüfen Sie erneut die Seiteneigenschaften, und testen Sie die Replikation/Verteilung erfolgreich.