Expand my Community achievements bar.

SOLVED

A few questions about replication and queues

Avatar

Level 7

Hi,

I have heard some contradicting statements about CQ 5's (5.6.1 to be exact) replication system. Could someone please give a definitive answer for the following questions:

  • Are replication queues FIFO? Or are they processed concurrently, hence leading to non-FIFO behavior?
  • If passed a ReplicationOptions object, would the replicate method respect:
    • isSynchronous()? What would happen when there are already some items in the queue before a synchronous replication (activation) of a Node starts? Would it wait for all the prior items to be replicated before the method returns?
    • Would it respect a custom aggregate handler? Are there any sample codes for aggregate handlers?
      • Should cq:ClientLibraryFolder nodes be treated as aggregate nodes? I have heard that if the css.txt or js.txt files get replicated before the css or js files references in them, they could lead to errors on the publisher instances.
      • What should exactly be returned by the "AggregateHandler.prepareForReplication" method?
      • When a node is identified to be aggregate, which nodes underneath that node get actually published?
  • What is the purpose of the ReplicationOptions's updateAlias property?

Thanks in advance.

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

Hi,

just to give you a few answers:

  • Each replication agent holds its own queue. These queues have a FIFO semantic. But the queues are not linked, so queue A might have processed the items 1,2 and 3, while queue B is still processing item 1.
  • I don't have experience with "isSynchronous", because in one case it would take a long time (if all items already in the queue must be processed first) or it breaks the FIFO semantics.
  • For the remaining parts please file a Daycare ticket, so the API documentation is enhanced.

Regards,

Jörg

View solution in original post

1 Reply

Avatar

Correct answer by
Employee Advisor

Hi,

just to give you a few answers:

  • Each replication agent holds its own queue. These queues have a FIFO semantic. But the queues are not linked, so queue A might have processed the items 1,2 and 3, while queue B is still processing item 1.
  • I don't have experience with "isSynchronous", because in one case it would take a long time (if all items already in the queue must be processed first) or it breaks the FIFO semantics.
  • For the remaining parts please file a Daycare ticket, so the API documentation is enhanced.

Regards,

Jörg