Navigieren Sie zur OSGi-Konsole „http://host:port/system/console/configMgr“
AEM Communities-Benutzersynchronisierung funktioniert nicht mehr und Benutzer werden nicht mehr zwischen Veröffentlichungsinstanzen synchronisiert.
Ursache
Es kann viele Gründe dafür geben, dass die Benutzersynchronisierung fehlschlägt. Die häufigsten sind:
- Fehler in der Konfiguration
- Ein Fehler beim Speichern, wenn sich der Benutzer in der Veröffentlichungsinstanz befindet
- Systemfehler beim Speichern des Benutzerpakets aufgrund eines Fehlers oder Berechtigungsproblems (Author- oder Publish-Instanz)
- Sling-Aufträge bleiben aufgrund fehlender Benutzerpakete hängen
Lösung
I. Befolgen Sie die Dokumentation zur Fehlerbehebung
II. Aktualisieren Sie das „VaultDistributionPackageBuilderFactory“ (gilt nur für AEM 6.2)
** Dies gilt nur für AEM 6.2.
Aktualisieren Sie die Datei socialpubsync-vlt Vault Package Builder Factory, um diese Elemente zu behandeln:
- Speichern Sie die Benutzersynchronisierungspakete im Dateisystem auf nicht gruppierten Instanzen, um die Stabilität und Leistung zu erhöhen.
- Schließen Sie rep:policy-Knoten ein und vermeiden Sie .token- und rep:cache-Knoten, die mit dem Benutzer synchronisiert werden
- Vermeiden Sie den Fehler „Pakete konnten nicht abgerufen werden“ [1]
-
-
Finden Sie „Apache Sling Distribution Packaging - Vault Package Builder Factory“ mit dem Name-Feld „socialpubsync-vlt“.
-
Klicken Sie auf die Dropdownliste und wählen „Dateipakete“ anstelle von „JCR-Pakete“ aus. Führen Sie diesen Schritt nur auf Nicht-Cluster-Instanzen durch.
-
Fügen Sie im Feld „Paketfilter“ die folgenden Werte hinzu:
- /home/users|-.*/rep:cache
- /home/users|-.*/.tokens
- /home/users|-.*/rep:policy
Hinweis:Durch Hinzufügen von rep:Cache wird der Fehler unten vermieden:
[... POST /libs/sling/distribution/services/importers/socialpubsync HTTP/1.1] org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage Fehler bei der Installation.
javax.jcr.nodetype.ConstraintViolationException: OakConstraint0034: Versuchen Sie, den vom System gepflegten Cache anzulegen oder zu ändern.
-
Wählen Sie: Der Digest-Algorithmus, zur Berechnung der Paket-Prüfsumme der Dropdown-Liste und wählen Sie md5.
-
Klicken Sie auf „Speichern“.
Wenn Sie AEM 6.2 verwenden, installieren Sie Cumulative Fix Pack 3 für alle Author- und Publish-Instanzen oder wenden Sie sich an den AEM-Kundendienst, um einen Hotfix für NPR-13034 anzufordern. Wenn Sie diese Einstellungen nicht installieren, hat die oben genannte Konfiguration keine Auswirkungen.
III. Stellen Sie den Sling sicher: Ordnerknoten sind verteilt (gilt nur für AEM 6.2)
** Dies gilt nur für AEM 6.2.
Es liegt ein Problem mit der Standardkonfiguration in der Sync vor, bei der die sling:nodes wie „Social/relationships/following“ nicht verteilt werden.
-
Gehen Sie zu http://aem-host:port/system/console/configMgr/com.adobe.cq.social.sync.impl.UserSyncListenerImpl und loggen Sie sich als Administrator ein.
-
Fügen Sie sling:Ordner zu den Knotentypen hinzu.
IV. Löschen Sie Benutzerpakete
Je nachdem, welche Version von Sling Distribution und AEM Social Communities Sie haben, können Sie Benutzerpakete unter /etc/packages/sling (ältere Versionen - AEM 6.1 ohne Hotfixes) oder /var/sling/distribution/packages (neuere Versionen erstellen - AEM 6.1 mit AEM Social Communities FP4 oder höher).
-
Gehen Sie auf: http://host:port/crx/explorer/index.jsp
-
Melden Sie sich als Administrator an.
-
Durchsuchen Sie /etc/packages und löschen Sie den Unterordner „Sling“.
-
Gehen Sie zu /var/sling/distribution und löschen Sie den Unterordner „Packages“.
-
Klicken Sie auf „Speichern“.
Wenn Sie in Ihrer Vault Package Builder Factory-Konfiguration bereits das Typfeld auf Dateipakete gesetzt haben, müssen Sie die Pakete aus dem temporeren Ordner löschen:
-
Melden Sie sich bei Ihrem AEM-Server an.
-
Wechseln Sie in das vom AEM-Java-Prozess verwendete temporere Verzeichnis (dies könnte durch den JVM-Parameter -Djava.io.tmpdir definiert sein).
-
Löschen Sie alle Pakete aus diesem Ordner. Hier ist ein Beispielbefehl, der unter Linux verwendet werden könnte: für i in dstrpck*; do rm $i; done
-
Wiederholen Sie dies für alle AEM-Instanzen (publizieren Sie Instanzen und die Autoreninstanz).
V. Entsperren Sie die Verteilungswarteschlange:
Da Sie die Pakete gelöscht haben, löschen Sie alle festgefahrenen Sling-Aufträge, die auf sie verweisen. Wenn alte Aufträge unter /var/eventing/jobs/nicht zugewiesen aufgrund eines Fehlers nicht verarbeitet werden, können sie dazu führen, dass die Benutzersynchronisierung fehlschlägt. Löschen Sie diese auf jedem AEM-Knoten, um die Synchronisierungswarteschlange zu entsperren:
-
Gehen Sie auf http://host:port/crx/explorer/index.jsp
-
Melden Sie sich als Administrator an.
-
Öffnen Sie den Content Explorer.
-
Navigieren Sie zu /var/eventing/jobs
-
Klicken Sie auf den ersten Unterordner von /var/eventing/jobs/unassigned
-
Suchen Sie den kleinen Knoten, der mit org.apache.sling.distribution
-
Klicken Sie mit der rechten Maustaste auf diesen Knoten und löschen Sie rekursiv.
-
Deaktivieren Sie das Kontrollkästchen Vorläufiger Scan.
-
Löschen.
VI. Weitere Analyse
Wenn keiner der obigen Schritte das Problem mit der Benutzersynchronisation behoben hat, dann aktivieren Sie die Debug-Level-Protokollierung für diese Java-Pakete (Author- und Publish-Instanzen):
-
Gehen Sie zu http://aem-host:port/system/console/slinglog
-
Klicken Sie auf „neuen Logger hinzufügen“.
-
Legen Sie die folgenden Werte fest:
- Protokollebene -> Debuggen
- Protokolldatei -> logs/usersync.log
- Protokollierungen
- org.apache.sling.distribution
- org.apache.sling.event
- com.adobe.cq.social.sync
-
Klicken Sie auf „Speichern“.
-
Wenden Sie sich an den Kundendienst von AEM, und fügen Sie eine Beschreibung des Problems sowie die Protokolldateien hinzu.
[1] Fehler in der Benutzersynchronisierung nach Anwendung von 6.2 Kumulatives Fixpack 5 oder höher
22.08.2017 12:38:16.044 *ERROR* [sling-default-655-scheduledEventTriggerorg.apache.sling.distribution.agent.impl.TriggerAgentRequestHandler@3b05483d] org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync] cannot retrieve packages org.apache.sling.distribution.common.DistributionException: java.lang.NullPointerException at org.apache.sling.distribution.packaging.impl.FileDistributionPackageBuilder.readPackageInternal(FileDistributionPackageBuilder.java:127) at org.apache.sling.distribution.packaging.impl.AbstractDistributionPackageBuilder.readPackage(AbstractDistributionPackageBuilder.java:111) at org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory.readPackage(VaultDistributionPackageBuilderFactory.java:243) at org.apache.sling.distribution.transport.impl.SimpleHttpDistributionTransport.retrievePackage(SimpleHttpDistributionTransport.java:156) at org.apache.sling.distribution.packaging.impl.exporter.RemoteDistributionPackageExporter.exportPackages(RemoteDistributionPackageExporter.java:82) at org.apache.sling.distribution.agent.impl.SimpleDistributionAgent.exportPackages(SimpleDistributionAgent.java:214) at org.apache.sling.distribution.agent.impl.SimpleDistributionAgent.execute(SimpleDistributionAgent.java:182) at org.apache.sling.distribution.agent.impl.TriggerAgentRequestHandler.handle(TriggerAgentRequestHandler.java:71) at org.apache.sling.distribution.trigger.impl.ScheduledDistributionTrigger$ScheduledDistribution.run(ScheduledDistributionTrigger.java:134) at org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:118) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException: null
Bei Ihrem Konto anmelden