plugins/aem/6.5-lts/skills/aem-replication/configure-replication-agent/SKILL.md
Configure AEM 6.5 LTS replication agents for content publishing, dispatcher cache flushing, and reverse replication
npx skillsauth add adobe/skills configure-replication-agentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This 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 troubleshooting
Security 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 configuration
Connection 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 version
Control 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 optimization
Before 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 them
Dispatcher 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 issuestools
Identifies which items (pages, campaigns, products, channels, regions) had the biggest increases or decreases for a key metric between two time periods. Use this skill when someone asks "what's up and what's down," "which campaigns moved the most," "top gainers and losers," "what pages are trending," "show me what changed by channel," or any variation of identifying the biggest movers and decliners for a metric.
tools
Compares the performance of two or more audience segments across key metrics side by side. Use this skill when someone wants to compare audiences, cohorts, or groups — for example, "how do mobile users compare to desktop users on conversion," "compare new vs. returning visitors," "show me the difference between these two segments," "compare these audiences on our KPIs," or "which segment performs better." Also trigger for "segment comparison," "audience comparison," or "cohort comparison."
business
Produces a compact KPI digest showing how key metrics changed over a period and what's driving the movement. Use this skill when someone asks for a performance summary, a weekly recap, a morning briefing, a KPI update, or any variation of "how did we do this week/month." Also trigger for requests like "give me a performance overview," "what moved in the last 7 days," "pull our KPI report," or "summarize our metrics."
testing
Analyzes a multi-step conversion funnel to find where users drop off and which steps have the worst leakage. Use this skill when someone describes a journey or funnel and asks about conversion rates, drop-off, fallout, or step completion. Trigger for phrases like "analyze our onboarding funnel," "where are users dropping off," "what's our checkout conversion rate," "funnel analysis," "show me fallout between these steps," or "which step loses the most users."