MSM Rollout Conflicts
- Topics:
- Multi Site Manager
CREATED FOR:
- Admin
Conflicts can occur if new pages with the same page name are created in both the blueprint branch and a dependent live copy branch.
Such conflicts need to be handled and resolved upon rollout.
Conflict Handling
When conflicting pages do exist (in the blueprint and live copy branches), MSM allows you to define how (or even if) they should be handled.
To ensure that the rollout is not blocked, possible definitions can include:
-
which page (blueprint or live copy) will have priority during rollout,
-
which pages will be renamed (and how),
-
how this will affect any published content.
The default behavior of AEM (out-of-the-box) is that published content will not be impacted. So if a page that was manually created in the live copy branch has been published, that content will still be published after the conflict handling and rollout.
In addition to the standard functionality, customized conflict handlers can be added to implement different rules. These can also allow publishing actions as an individual process.
Example Scenario
In the following sections we use the example of a new page b
, created in both the blueprint and the live copy branch (created manually), to illustrate the various methods of conflict resolution:
-
blueprint:
/b
A master page; with 1 child page, bp-level-1.
-
live copy:
/b
A page manually created in the live copy branch; with 1 child page,
lc-level-1
.- Activated on publish as
/b
, together with the child page.
- Activated on publish as
Before Rollout
blueprint before rollout | live copy before rollout | publish before rollout |
b (created in blueprint branch, ready for rollout) | b (manually created in live copy branch) | b (contains the content of the page b that was manually created in the live copy branch) |
/bp-level-1 | /lc-level-1 (manually created in live copy branch) | /lc-level-1 (contains the content of the page child-level-1 that was manually created in the live copy branch) |
Rollout Manager and Conflict Handling
The rollout manager allows you to activate or deactivate conflict management.
This is done using OSGi configuration of Day CQ WCM Rollout Manager:
-
Handle conflict with manually created Pages:
(
rolloutmgr.conflicthandling.enabled
)Set to true if the rollout manager should handle conflicts from a page created in the live copy with a name that exists in the blueprint.
AEM has predefined behavior when conflict management has been deactivated.
Conflict Handlers
AEM uses conflict handlers to resolve any page conflicts that exist when rolling out content from a blueprint to a live copy. Renaming pages is one (the usual) method of resolving such conflicts. More than one conflict handler can be operational to allow for a selection of different behaviors.
AEM provides:
-
ResourceNameRolloutConflictHandler
-
The possibility to implement a customized handler.
-
The service ranking mechanism that allows you to set the priority of each individual handler. The service with the highest ranking is used.
Default Conflict Handler
The default conflict handler:
-
Is called
ResourceNameRolloutConflictHandler
-
With this handler the blueprint page is given precedence.
-
The service ranking for this handler is set low ( ``i.e. below the default value for the
service.ranking
property) as the assumption is that customized handlers will need a higher ranking. However, the ranking is not the absolute minimum to ensure flexibility when required.
This conflict handler gives precedence to the blueprint. The live copy page /b
is moved (within the live copy branch) to /b_msm_moved
.
-
live copy:
/b
Is moved (within the live copy) to
/b_msm_moved
. This acts as a backup and ensures that no content is lost.lc-level-1
is not moved.
-
blueprint:
/b
Is rolled out to the live copy page
/b
.bp-level-1
is rolled out to the livecopy.
After Rollout
blueprint after rollout | live copy after rollout | live copy after rollout | publish after rollout | |
b | b (has the content of the blueprint page b that was rolled out) | b_msm_moved (has the content of the page b that was manually created in the live copy branch) | b (no change; contains the content of the original page b that was manually created in the live copy branch and is now called b_msm_moved) | |
/bp-level-1 | /bp-level-1 | /lc-level-1 (no change) | `` | /lc-level-1 (no change) |
Customized Handlers
Customized conflict handlers allow you to implement your own rules. Using the service ranking mechanism you can also define how they interact with other handlers.
Customized conflict handlers can:
-
Be named according to your requirements. ``
-
Be developed/configured according to your requirements; for example, you can develop a handler so that the live copy page is given precedence.
-
Can be designed to be configured using the OSGi configuration; in particular the:
-
Service Ranking:
Defines the order related to other conflict handlers (
service.ranking
).The default value is 0.
-
Behavior When Conflict Handling Deactivated
If you manually deactivate conflict handling then AEM takes no action on any conflicting pages (non-conflicting pages are rolled out as expected).
In this case the live copy effectively takes precedence. The blueprint page /b
is not copied and the live copy page /b
is left untouched.
-
blueprint:
/b
Is not copied at all, but is ignored.
-
live copy:
/b
Stays the same.
blueprint after rollout | live copy after rollout | publish after rollout |
b | b (no change; has the content of the page b that was manually created in the live copy branch) | b (no change; contains the content of the page b that was manually created in the live copy branch) |
/bp-level-1 | /lc-level-1 (no change) | /lc-level-1 (no change) |
Service Rankings
The OSGi service ranking can be used to define the priority of individual conflict handlers.
More help on this topic
Experience Manager
- Administering User Guide overview
- Sites Features
- Website Administration
- Reusing Content: Multi Site Manager and Live Copy
- Live Copy Overview Console
- Configuring Live Copy Synchronization
- Creating and Synchronizing Live Copies
- MSM Rollout Conflicts
- MSM Best Practices
- Translating Content for Multilingual Sites
- Managing Translation Projects
- Identifying Content to Translate
- Preparing Content for Translation
- Creating a Language Root Using the Classic UI
- Connecting to Microsoft Translator
- Configuring the Translation Integration Framework
- Language Copy Wizard
- Translation Enhancements
- Translation Best Practices
- Configurations and the Configuration Browser
- AEM FAQs
- Operations
- Dashboards
- Operations Dashboard
- Backup and Restore
- Data Store Garbage Collection
- Monitoring Server Resources Using the JMX Console
- Working with Logs
- Configure the Rich Text Editor
- Configure the Video component
- The Bulk Editor
- Configuring Email Notification
- Configuring RTE for Producing Accessible Sites
- The Link Checker
- Troubleshooting AEM
- Audit Log Maintenance in AEM 6
- Editor
- Managing Access to Workflows
- Using cURL with AEM
- Configuring Undo for Page Editing
- Proxy Server Tool (proxy.jar)
- Configuring for AEM Apps
- Administering Workflows
- Configuring Search Forms
- Tools Consoles
- Reporting
- Administering Workflow Instances
- Configuring Layout Container and Layout Mode
- Enabling Access to Classic UI
- Starting Workflows
- Configure the Rich Text Editor plug-ins
- Admin Consoles
- Security
- User Administration and Security
- User, Group and Access Rights Administration
- Security Checklist
- OWASP Top 10
- Running AEM in Production Ready Mode
- Identity Management
- Adobe IMS Authentication and Admin Console Support for AEM Managed Services
- Creating a Closed User Group
- Mitigating serialization issues in AEM
- User Synchronization
- Encapsulated Token Support
- Single Sign On
- How to Audit User Management Operations in AEM
- SSL By Default
- SAML 2.0 Authentication Handler
- Closed User Groups in AEM
- Granite Operations - User and Group Administration
- Enabling CRXDE Lite in AEM
- Configuring LDAP with AEM 6
- Configure the Admin Password on Installation
- Service Users in AEM
- Encryption Support for Configuration Properties
- Handling GDPR Requests for the AEM Foundation
- Content Disposition Filter
- Personalization
- eCommerce
- Integration
- Integrating with Third-Party Services
- Integrating with Salesforce
- Integrating with Adobe Target
- Integrating with Adobe Analytics
- Connecting to Adobe Analytics and Creating Frameworks
- Configuring Link Tracking for Adobe Analytics
- Mapping Component Data with Adobe Analytics Properties
- Configuring Video Tracking for Adobe Analytics
- HTTP2 Delivery of Content FAQ
- Troubleshooting your Adobe Campaign Integration
- SharePoint Connector Licenses, Copyright Notices, and Disclaimers
- SharePoint Connector
- DHTML Viewer End-of-Life FAQs
- Integrating with Adobe Campaign Classic
- Related Community Articles
- Integrating with Adobe Campaign Standard
- Flash Viewers End-of-Life Notice
- Integrating with Adobe Creative Cloud
- Integrating with Adobe Dynamic Tag Management
- Opting Into Adobe Analytics and Adobe Target
- AEM Portals and Portlets
- Integrating with Dynamic Media Classic
- Troubleshooting Integration Issues
- Integrating with BrightEdge Content Optimizer
- Best Practices for Email Templates
- Catalog Producer
- Integrating with Silverpop Engage
- Integrating with Adobe Campaign
- Integrating with ExactTarget
- Analytics with External Providers
- Integrating with the Adobe Marketing Cloud
- Manually Configuring the Integration with Adobe Target
- Prerequisites for Integrating with Adobe Target
- Adobe Classifications
- Solutions Integration
- Target Integration with Experience Fragments
- Best Practices
- Content Management