Configure AEM 6.5 LTS replication agents for content publishing, dispatcher cache flushing, and reverse replication
50
55%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/aem/6.5-lts/skills/aem-replication/configure-replication-agent/SKILL.mdThis skill guides you through configuring replication agents in Adobe Experience Manager 6.5 LTS. Replication agents are the core mechanism for distributing content from Author to Publish environments, managing Dispatcher cache, and handling user-generated content flows.
Use this skill when you need to:
AEM supports several replication agent types for different purposes:
| Agent Type | Purpose | Location | Serialization Type |
|---|---|---|---|
| Default Agent | Publishes content from Author to Publish | Author | Default |
| Dispatcher Flush | Invalidates Dispatcher cache | Publish | Dispatcher Flush |
| Reverse Replication | Returns user input from Publish to Author | Author (polling) + Publish (outbox) | Default |
| Static Agent | Stores static node representation to filesystem | Author/Publish | Static Content Builder |
Classic UI:
http://localhost:4502/etc/replication/agents.author.htmlTouch UI:
For new agent:
publish_instance_1, dispatcher_flush)For existing agent:
Essential settings to configure:
Field: Enabled
Value: ✓ (checked)
Purpose: Activates the replication agent
Field: Serialization Type
Values:
- Default (standard content replication)
- Dispatcher Flush (cache invalidation only)
- Static Content Builder (filesystem storage)
Purpose: Determines how content is packaged
Field: Retry Delay (ms)
Value: 60000 (default)
Purpose: Time between retry attempts on failure
Field: Agent User Id
Value: replication-service (create dedicated user)
Purpose: Service account with minimal required permissions
WARNING: Never use 'admin' account in production
Field: Log Level
Values: Error | Info | Debug
Purpose: Controls logging verbosity for troubleshootingSecurity Best Practice: Create a dedicated replication service account:
replication-serviceConfigure connection details to target instance:
Field: URI
Format: http[s]://<hostname>:<port>/bin/receive?sling:authRequestLogin=1
Examples:
- http://localhost:4503/bin/receive?sling:authRequestLogin=1
- https://publish1.example.com:4503/bin/receive?sling:authRequestLogin=1
Field: User
Value: admin (or dedicated replication receiver account)
Purpose: Authentication to Publish instance
Field: Password
Value: [secure password]
Purpose: Authentication credentials
Field: OAuth Settings
Value: Leave empty unless using OAuth
Purpose: Alternative authentication mechanism
Field: NTLM Domain/Host/User/Password
Value: Configure if using Windows NTLM authentication
Purpose: Domain-based authentication
Field: SSL
Options:
- Relaxed SSL: Allow self-signed certificates (development only)
- Allow expired: Accept expired certificates (not recommended)
Purpose: SSL/TLS configurationConnection String Examples:
| Scenario | URI Pattern |
|---|---|
| Local Publish | http://localhost:4503/bin/receive?sling:authRequestLogin=1 |
| Remote Publish | https://publish.example.com:4503/bin/receive?sling:authRequestLogin=1 |
| Multiple Instances | Create separate agents for each: port 4503, 4504, 4505, etc. |
Only configure if network routing requires proxy:
Field: Proxy Host
Value: proxy.corporate.com
Field: Proxy Port
Value: 8080
Field: Proxy User/Password
Value: [proxy credentials if required]Advanced HTTP settings:
Field: HTTP Method
Values: GET (default) | POST
Purpose: HTTP verb for replication requests
Field: HTTP Headers
Default headers:
CQ-Action:{action}
CQ-Handle:{path}
CQ-Path:{path}
Purpose: Custom headers for replication requests
Field: Connection Timeout (ms)
Value: 10000 (default)
Purpose: Maximum time to establish connection
Field: Socket Timeout (ms)
Value: 10000 (default)
Purpose: Maximum time waiting for data
Field: Protocol Version
Values: HTTP/1.0 | HTTP/1.1
Default: HTTP/1.0
Purpose: HTTP protocol versionControl when the agent activates:
Option: Ignore default
Effect: Excludes agent from default replication
Use case: Custom workflows only
Option: On Modification
Effect: Auto-activates on page changes
Use case: Automatic publishing workflows
Option: On Distribute
Effect: Triggers on distribution events
Use case: Package replication
Option: On Receive
Effect: Chains replication from incoming events
Use case: Multi-tier replication
Option: No Status Update
Effect: Doesn't update replication status
Use case: Read-only monitoring agents
Option: No Versioning
Effect: Skips version creation
Use case: Performance optimizationBefore enabling:
Common test failures:
| Error | Cause | Solution |
|---|---|---|
| Connection refused | Publish instance not running | Start Publish instance |
| 401 Unauthorized | Invalid credentials | Verify user/password |
| Timeout | Network/firewall issue | Check connectivity, adjust timeouts |
| SSL handshake failed | Certificate issue | Configure SSL settings or update certificates |
Purpose: Publishes content from Author to Publish environment
Configuration specifics:
http://publish-host:4503/bin/receive?sling:authRequestLogin=1/etc/replication/agents.author)Multiple Publish Instances: Create one agent per Publish instance:
publish_instance_1 → http://publish1:4503/bin/receivepublish_instance_2 → http://publish2:4504/bin/receivepublish_instance_3 → http://publish3:4505/bin/receivePurpose: Invalidates Dispatcher cache when content is published
Configuration specifics:
http://dispatcher-host:80/dispatcher/invalidate.cache/etc/replication/agents.publish)Important settings:
Settings Tab:
- Serialization Type: Dispatcher Flush
- Enabled: ✓
Transport Tab:
- URI: http://dispatcher:80/dispatcher/invalidate.cache
- (Authentication may not be required)
Extended Tab:
- HTTP Headers: Add custom headers if Dispatcher requires themDispatcher configuration requirements:
Ensure Dispatcher dispatcher.any has:
/allowedClients {
/0 { /type "allow" /glob "*publish-instance-ip*" }
}Purpose: Collects user-generated content from Publish and sends to Author
Requires TWO components:
1. Outbox Agent on Publish (passive collection point)
/etc/replication/agents.publish/outbox2. Reverse Replication Agent on Author (active polling)
/etc/replication/agents.author/reverse_replicationhttp://publish-host:4503/bin/receive?sling:authRequestLogin=1Configuration steps:
On Publish instance:
/etc/replication/agents.publishOn Author instance:
http://publish:4503/bin/receiveContent requirements for reverse replication:
Only cq:Page nodes are supported out-of-the-box. For other node types, custom implementation required.
To trigger reverse replication, add properties:
cq:distribute (Boolean) = truecq:lastModified (Date)cq:lastModifiedBy (String)| Status | Indicator | Meaning | Action |
|---|---|---|---|
| Idle | Green | Queue empty, ready | Normal operation |
| Active | Green | Processing queue | Normal operation |
| Blocked | Red | Queue blocked by failed item | Investigate failure, clear queue |
| Disabled | Gray | Agent not enabled | Enable if needed |
Navigate to JMX Console: http://localhost:4502/system/console/jmx
Search for: com.day.cq.replication:type=Agent
Monitor:
Create test page on Author:
/content/testActivate the page:
Check replication status:
Verify on Publish:
http://publish:4503/content/test/page-name.htmlCheck agent queue:
After content activation:
Test cache flush:
Issue: Replication queue blocked
Issue: Connection refused
http://publish:4503/system/consoletelnet publish-host 4503Issue: 401 Unauthorized
curl -u user:password http://publish:4503/bin/receiveIssue: SSL handshake failure
Issue: Dispatcher not flushing cache
/allowedClients configurationcurl -X POST http://dispatcher/dispatcher/invalidate.cacheIssue: User data not synchronizing
Never use admin account for replication
replication-service userUse HTTPS for production
Implement Mutual SSL (MSSL) for enhanced security
Restrict agent configuration access
/etc/replication nodeMonitor and log replication activity
Network security
replicate-content: Activate and deactivate content using configured agentstroubleshoot-replication: Diagnose and fix replication issuese23271f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.