Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Reverse replication issue -- Unable to enable the outbox agent

Avatar

Level 1

Hi Dear Community,

We're in the process of setting up reverse replication ( Pub to Auth). We have a single author instance publishing to 2 publisher agents.

We're failing to enable the outbox agent on publisher instance the "view Log" only results in "no such agent: outbox".  We're using  AEM version 6.1.0.20150507. 

Could you guys point to any configuration steps we're overlooking.

 

Best,

John  M

1 Accepted Solution

Avatar

Correct answer by
Employee

Hi,

as JK asked, what is the use case for using Reverse Replication? Previously it was used for synching of Users and User Generated Content. 

We now do not support reverse replication of UGC, instead you should use xSRP( requires AEM Communities licence). For users and groups you should use Sling Content Distribution (SCD), which as a part of Sling requires no licence above your AEM licence.

So essentially the only use case left for reverse replication is for cq:page nodes. So if you do have a valid use case, from the documentation, reverse replication is a two step process:

As the publish environment is usually in the DMZ, to get content back to the author environment the connection must be initiated from the author instance. This is done with:

  • an outbox in the publish environment where the content is placed.
  • an agent (publish) in the author environment which periodically polls the outbox for new content.

So you have to enable two agents. But the docs do not give complete details on the setup, as you also need to get content into the reverse replication outbox on the publish instance. You could do this by using a launcher that listens for events relating to pages and adds them to the agent, this would be the better approach as you would not want to use on modification as you could end up in a an infinite loop. You also need to handle pushing content out from the author instance back to the publish instances. So there is a lot of work involved to get reverse replication working, so again it comes down to what is your use case?

Regards,

Opkar

[0] https://docs.adobe.com/docs/en/aem/6-2/deploy/configuring/replication.html#Configuring Reverse Replication

View solution in original post

17 Replies

Avatar

Level 1
Hi, Thank you for the tutorial link, the tutorial mentions all publish instances come with the outbox agent enabled. In our case the agent is in disable state and when we try to enable the agent via settings it results in "no such agent: outbox". Also, as stated in the tutorial how can I achieve the following: All publish instance comes with Outbox enabled, If there is any issue with Outbox you can activate publish outbox from author to publish.  Thanks

Avatar

Employee

Hi Tony,

I just fired up a vanilla AEM 6.1 instance (same build number as yours) and the Agent on publish "Reverse Replication (outbox)" is enabled by default. Can you create a new publish instance and check the "Agents on publish" to see if the reverse replication agent is enabled by default?

Regards,

Opkar

Avatar

Level 1

Hi Opkar,

I just wiped everything and re created the publisher instance again. Yes, the replication agent was enabled by default. Thank you very much for your support.

With reverse replication agent enabled and active. I am now stuck at any new page creation or comment on the publisher instance is not going to outbox and the reverse replication agent configured in the author instance always results in "Fetched 0 contents no matter what.  Is there any other way to verify reverse replication

 

28.06.2016 10:12:30 - INFO - publish_reverse : Sending message to 10.0.25.138:4503 28.06.2016 10:12:30 - INFO - publish_reverse : >> GET /bin/receive?sling:authRequestLogin=1 HTTP/1.0 28.06.2016 10:12:30 - INFO - publish_reverse : >> Action: Internal Poll 28.06.2016 10:12:30 - INFO - publish_reverse : >> Path: 28.06.2016 10:12:30 - INFO - publish_reverse : >> Handle: 28.06.2016 10:12:30 - INFO - publish_reverse : -- 28.06.2016 10:12:30 - INFO - publish_reverse : << HTTP/1.1 200 OK 28.06.2016 10:12:30 - INFO - publish_reverse : << Date: Tue, 28 Jun 2016 10:12:45 GMT 28.06.2016 10:12:30 - INFO - publish_reverse : << X-Content-Type-Options: nosniff 28.06.2016 10:12:30 - INFO - publish_reverse : << Content-Type: application/octet-stream 28.06.2016 10:12:30 - INFO - publish_reverse : << Content-Length: 32 28.06.2016 10:12:30 - INFO - publish_reverse : << Server: Jetty(9.2.9.v20150224) 28.06.2016 10:12:30 - INFO - publish_reverse : << X-Powered-By: Jetty(9.2.9.v20150224) 28.06.2016 10:12:30 - INFO - publish_reverse : Message sent. 28.06.2016 10:12:30 - INFO - publish_reverse : ------------------------------------------------ 28.06.2016 10:12:30 - INFO - publish_reverse : Reverse replication successful. 28.06.2016 10:12:30 - INFO - publish_reverse : Fetched 0 contents from http://10.0.25.138:4503/bin/receive?sling:authRequestLogin=1 since null

 

 

Best,

John M

Avatar

Employee

Hi John,

it has been a long time since I looked at reverse replication, but the principles were to create a workflow launcher that would listen for changes in your tree, it would then replicate these changed which would go to the reverse replication queue. The changes would be sent to the author, where another set of launchers would replicate the content back out to the publish instances. You also had to set properties on the page in publish to make sure you did not get into an infinite loop. Apologies for the vague answer, hopefully someone else can help with concrete implementation details. I'm sure you already know, but reverse replication of comments is no longer supported.

Regards,

Opkar

Avatar

Level 9

M-John wrote...

 

With reverse replication agent enabled and active. I am now stuck at any new page creation or comment on the publisher instance is not going to outbox and the reverse replication agent configured in the author instance always results in "Fetched 0 contents no matter what.  Is there any other way to verify reverse replication

 

Is licensing AEM Communities an option?

There is a mechanism where pages (community groups) created on publish are actually created on author and then replicated to publish.  User generated content (like comments) is created in a common store and never replicated.  See What Happens When ...

- JK

Avatar

Level 2

I do have simliar problem, reverse replication is fetching 0 items all the time. 

30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse sent. Response: 200 OK
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse ------------------------------------------------
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse Sending message to localhost:4503
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse >> GET /bin/receive?sling:authRequestLogin=1 HTTP/1.0
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse >> Action: Internal Poll
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse >> Path: 
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse >> Handle: 
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse --
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse << HTTP/1.1 200 OK
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse << Date: Thu, 30 Jun 2016 19:16:11 GMT
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse << X-Content-Type-Options: nosniff
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse << Content-Type: application/octet-stream
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse << Content-Length: 32
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse Message sent.
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse ------------------------------------------------
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse Reverse replication successful.
30.06.2016 15:16:11.639 *INFO* [sling-default-153-com.day.cq.replication.impl.ReverseReplicator.2673] com.day.cq.replication.Agent.publish_reverse Fetched 0 contents from http://localhost:4503/bin/receive?sling:authRequestLogin=1 since null
 

Avatar

Level 9

As of AEM 6.1, no features are using reverse replication.  If you need reverse replication, you have to build it yourself.

There is some information here : Configuring Reverse Replication.

While the reverse replication (passive) agent (the outbox) is enabled OOTB on the publish instance, it is not enabled OOTB on the author instance.  A reverse replication (active) agent is needed in the author environment.

Definitely check out the article Scott posted :

http://www.cqtutorial.com/courses/cq-admin/cq-admin-lessons/configure-cq-replication/cq-reverse-repl...

(Note: the last 'here' link refers to an older version of Configuring Reverse Replication)

- JK

Avatar

Level 2

Thank you for quick reply. actually reverse replication agent is enabled, please attached author and publish screen shots.

Avatar

Level 9

Hi,

Perhaps you need to edit/configure the author agent.

Attached are screenshots of the author agent for AEM 6.0 when Communities used reverse replication for user generated content (nothing entered on Proxy tab).

 

- JK

Avatar

Level 2

JK, I seem to lost your attachment, also its not showing up on thread. Please repost for me.

Avatar

Level 2

JK, Thats seems to be exact same configuration I have. is there any other thing that needs to be done in order the reverse replication to work?

Avatar

Level 9

Obviously, I'm not an expert.  It really depends on your deployment (authors, publishers, dispatcher (if any)).

Instead of embedding, I've actually attached the screenshot of the OOTB configuration from AEM 6.0 this time.

If you've exhausted the knowledge of the forum, you might contact Customer Care to open a support ticket.

If you do so, please provide as much information as you can about your deployment (versions and topology) and your use case.

Avatar

Level 7

As per my understanding from AEM 6.1 the concept of reverse replication is deprecated and no longer in use. In place of it AEM team comes up with a new concept of community sync. Which act a separate repository from where all publish servers will sync there data. In this data wont be reverse replicated back to author from publish instead it will go to a cntral repository and from there all publish nodes will get sync. This is introduced to reduce author resource utilization and make it highly available.

Please correct me if any one feel i am wrong.

regards,

Ankur Ahlawat

AEM CQ5 Tutorials

Avatar

Correct answer by
Employee

Hi,

as JK asked, what is the use case for using Reverse Replication? Previously it was used for synching of Users and User Generated Content. 

We now do not support reverse replication of UGC, instead you should use xSRP( requires AEM Communities licence). For users and groups you should use Sling Content Distribution (SCD), which as a part of Sling requires no licence above your AEM licence.

So essentially the only use case left for reverse replication is for cq:page nodes. So if you do have a valid use case, from the documentation, reverse replication is a two step process:

As the publish environment is usually in the DMZ, to get content back to the author environment the connection must be initiated from the author instance. This is done with:

  • an outbox in the publish environment where the content is placed.
  • an agent (publish) in the author environment which periodically polls the outbox for new content.

So you have to enable two agents. But the docs do not give complete details on the setup, as you also need to get content into the reverse replication outbox on the publish instance. You could do this by using a launcher that listens for events relating to pages and adds them to the agent, this would be the better approach as you would not want to use on modification as you could end up in a an infinite loop. You also need to handle pushing content out from the author instance back to the publish instances. So there is a lot of work involved to get reverse replication working, so again it comes down to what is your use case?

Regards,

Opkar

[0] https://docs.adobe.com/docs/en/aem/6-2/deploy/configuring/replication.html#Configuring Reverse Replication

Avatar

Level 9

(edited to correct my misinformation)

Hi,

Opkar provided the best explanation.

This is how the reverse replicaiton appears in AEM 6.1 and 6.2 :

from author :

  • agents on author - Reverse Replication Agent (publish reverse) is configured and active
  • agents on publish - Reverse Replication (outbox) is not active.

from publish :

  • agents on author - Reverse Replication Agent (publish reverse) is not active
  • agents on publish - Reverse Replication (outbox) is active.

If you're not using localhost:4502 for author and localhost:4503 for publish, then the configuration must be edited.

Reverse replication is used for AEM Communities when creating sub-communities (community groups) initiated by a privileged member on a publish instance.

These three features of AEM Communities do not use reverse replication :

1) tunnel service - eliminates the need to replicate users and user groups between author and publish instances.  Enabling the tunnel service provides the ability to access users and user groups that exist on a publish instance from an author instance.

2) user sync - eliminates the need to replicate users and user groups among multiple publish instances (publish farm).  This is an AEM platform feature being used by Communities based on Sling Content Distribution.  While it is controlled by the author instance, these members and member groups are never created on author.  (Note: publish-side users are often referred to as members.)

3) SRP - eliminates the need to reverse-replicate user generated content (UGC) entered on a publish instance. SRP manages a common UGC store

  • accessible to all author and publish instances, when using MSRP and ASRP,
  • accessible to all publish instances (but not author) when using a publish cluster for JSRP.  

      Details for developers are here : Storage Resource Provider for UGC.

- JK