Threads in benutzerdefinierten CQ-Diensten sperren sich gegenseitig

Problem

Entsprechende Threads in einigen benutzerdefinierten CQ-Dienste sperren sich aufgrund der Synchronisierung gegenseitig.

Lösung

Erstellen Sie Ihre CQ-Dienste so, dass jeder CQ-Dienst ein eigenes Ticket verwendet (und nicht das Systemticket). Overlay. eigene Implementierung von AbstractService#getServiceTicket(Ticket) und ein separates Ticket mit der Ticket#duplicate()-Methode erstellen.

Wenn Sie ticket.duplicate() verwenden, sollten Sie sicherstellen, dass diese Objekte geschlossen wurden (siehe [1]).

Hinweis:

Das Systemticket selbst wird beim Start von CQ initialisiert und nur beim Schließen von CQ geschlossen.

Weitere Informationen

Dieses Problem tritt auf, wenn benutzerdefinierte CQ-Dienste AbstractService erweitern und AbstractService#getServiceTicket(Ticket) nicht überlagern, um ein separates Ticket zu erhalten. Daher wird dieselbe JCR-Sitzung für alle CQ-Dienste verwendet.

[1] http://javadoc.day.com/com/day/cq/contentbus/Ticket.html#close()

Adobe-Logo

Bei Ihrem Konto anmelden