Problem

Die Elemente in der Replikationswarteschlange auf der Autoreninstanz häufen sich, nachdem die Publizierungsinstanzen abgestürzt sind.  Die Warteschlangen werden nur durch einen Neustart der Autoreninstanz gelöscht.

Thread-Speicherauszüge zeigen, dass der Thread der Replikationswarteschlange im socketRead-Status steckengeblieben ist:

"pool-6-thread-68-com_day_cq_replication_job_publish1(com/day/cq/replication/job/publish1)" daemon prio=10 tid=0x00007ff0c41b1800 nid=0x2e7b runnable [0x00007ff05923f000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
- locked <0x00000006e0ba67b0> (a java.io.BufferedInputStream)
at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at com.day.cq.replication.impl.transport.Http.deliver(Http.java:510)
at com.day.cq.replication.impl.transport.Http.deliver(Http.java:170)
at com.day.cq.replication.impl.AgentImpl.doReplicate(AgentImpl.java:474)
- locked <0x000000069235a868> (a com.day.cq.replication.impl.AgentImpl)
at com.day.cq.replication.impl.AgentImpl.process(AgentImpl.java:371)
at com.day.cq.replication.impl.queue.ReplicationQueueImpl.process(ReplicationQueueImpl.java:285)
at com.day.cq.replication.impl.AgentManagerImpl.process(AgentManagerImpl.java:409)
at org.apache.sling.event.impl.jobs.queues.AbstractJobQueue$2.run(AbstractJobQueue.java:666)
- locked <0x00000006e0c9a080> (a java.lang.Object)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

Ursache

TCP/IP-Sockets für die Replikation auf der Autoreninstanz sind im socketRead-Status steckengeblieben, wo sie für immer auf die Veröffentlichungsinstanz warten, die abgestürzt ist.

Lösung

Um dieses Problem in Zukunft zu vermeiden, legen Sie Zeitlimits für die Replikations-Netzwerkverbindungen fest. 

Zum Festlegen der Zeitlimits gehen Sie wie folgt vor:

  1. Gehen Sie über http://aem-host:port/etc/replication/agents.author.html zu all Ihren Replikationsagenten.

  2. Öffnen Sie Seite jedes aktiven Agenten.

  3. Klicken Sie auf „Bearbeiten“.

  4. Wählen Sie die Registerkarte Erweitert.

  5. Setzen Sie Verbindungszeitlimit auf 10000.

  6. Setzen Sie Socket-Zeitlimit auf 300000.

  7. Klicken Sie auf OK, um zu speichern.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie