ロールアウトの競合 msm-rollout-conflicts
ブループリントのブランチと依存するライブコピーのブランチの両方で同じ名前の新しいページが作成されると、競合が発生することがあります。このような競合は、ロールアウト時に処理および解決する必要があります。
競合の処理 conflict-handling
競合するページが(ブループリントとライブコピーのブランチ内に)存在する場合、MSM では、それらの処理方法(または処理する場合も)を定義できます。
ロールアウトがブロックされないように、次の内容を定義します。
- ロールアウト時に優先されるページ(ブループリントまたはライブコピー)
- 名前を変更するページと変更方法
- これが公開されたコンテンツに与える影響
Adobe Experience Manager(AEM) のデフォルトの動作(標準)では、公開されたコンテンツに影響はありません。 したがって、ライブコピーブランチで手動で作成されたページが公開されても、競合の処理とロールアウトの後もそのコンテンツは公開され続けます。
標準の機能に加えて、カスタマイズされた競合ハンドラーを追加して別のルールを実装できます。これらは、アクションを個別のプロセスとして公開することも許可します。
サンプルシナリオ example-scenario
次のセクションでは、新しいページの例を示します。 b
競合を解決する様々な方法を示すために、ブループリントとライブコピーブランチの両方で(手動で作成された)が使用されます。
-
ブループリント:
/b
1 つの子ページを持つマスターページ
bp-level-1
-
ライブコピー:
/b
1 つの子ページを持つライブコピーブランチで手動で作成されたページ
lc-level-1
- 公開時に子ページと共に
/b
としてアクティベートされます。
- 公開時に子ページと共に
ロールアウト前 before-rollout
b
b
b
b
のコンテンツを含む/bp-level-1
/lc-level-1
/lc-level-1
child-level-1
のコンテンツを含むRollout Manager and Conflict Handling rollout-manager-and-conflict-handling
ロールアウトマネージャを使用して、競合の管理をアクティブ化または非アクティブ化できます。
これは、Day CQ WCM Rollout Manager の OSGi 設定を使用して行います。ロールアウトマネージャーが、ブループリントに存在する名前を使用してライブコピーで作成されたページからの競合を処理する場合は、手動で作成されたページで競合を処理(rolloutmgr.conflicthandling.enabled
)の値を true に設定します。
AEM には、競合の管理が無効になった場合の動作が事前定義されています。
競合ハンドラー conflict-handlers
AEM では、コンテンツをブループリントからライブコピーにロールアウトするときに存在するページの競合を、競合ハンドラーを使用して解決します。ページ名の変更は、(その他の)通常の方法で競合を解決します。 別の動作を選択できるように、複数の競合ハンドラーを有効にすることもできます。
AEM には次の機能があります。
- デフォルトの競合ハンドラー:
ResourceNameRolloutConflictHandler
- カスタマイズされたハンドラーを実装可能
- 個々のハンドラーの優先度を設定できるサービスランキングメカニズム
- 最もランキングの高いサービスが使用されます。
デフォルトの競合ハンドラー default-conflict-handler
デフォルトの競合ハンドラーは ResourceNameRolloutConflictHandler
です。
- このハンドラーを使用すると、ブループリントページが優先されます。
- このハンドラーのサービスランキングは低く設定されています。 つまり、
service.ranking
プロパティの値は、カスタマイズされたハンドラーがより高いランクを必要とすると仮定しているからです。 ただし、必要に応じて柔軟に対応するために、ランキングを絶対最小値にはしません。
この競合ハンドラーでは、ブループリントが優先されます。例えば、ライブコピーページなどです。 /b
は、ライブコピーブランチ内で /b_msm_moved
.
-
ライブコピー:
/b
ライブコピーで
/b_msm_moved
に移動されます。これはバックアップとして機能し、コンテンツが失われないようにします。lc-level-1
は移動されません。
-
ブループリント:
/b
ライブコピーページ
/b
にロールアウトされます。bp-level-1
はライブコピーにロールアウトされます。
ロールアウト後 after-rollout
b
b
b_msm_moved
b
b
のコンテンツを持つb
のコンテンツを持つb
ライブコピーブランチで手動で作成されたが、現在は b_msm_moved
/bp-level-1
/bp-level-1
/lc-level-1
/lc-level-1
カスタマイズされたハンドラー customized-handlers
カスタマイズされた競合ハンドラーを使用すると、独自のルールを実装できます。サービスランキングメカニズムを使用することで、他のハンドラーとの関わり方を定義することもできます。
カスタマイズされた競合ハンドラーでは、次の操作を行うことができます。
- 要件に合わせて名前を付けることができます。
- 要件に合わせて開発および設定することができます。
- 例えば、ライブコピーページが優先されるようにハンドラーを開発できます。
- これは、 OSGi 設定. 特に、以下を行います。
- サービスランキング:他の競合ハンドラーに対する相対的な順序を定義します(
service.ranking
)。- デフォルト値は
0
です。
- デフォルト値は
- サービスランキング:他の競合ハンドラーに対する相対的な順序を定義します(
競合処理が無効になった場合の動作 behavior-when-conflict-handling-deactivated
手動で競合処理を無効にすると、AEM では、競合するページに対して何のアクションも実行されません。競合しないページは、正常にロールアウトされます。
この場合、ライブコピーが効果的に優先されます。 ブループリントページ /b
はコピーされず、ライブコピーページ /b
はそのまま残ります。
-
ブループリント:
/b
コピーはまったくおこなわれませんが、無視されます。
-
ライブコピー:
/b
同じままです。
ロールアウト後 after-rollout-no-conflict
b
b
b
b
ライブコピーのブランチで手動で作成されたb
ライブコピーのブランチで手動で作成された/bp-level-1,
/lc-level-1
/lc-level-1
サービスランキング service-rankings
OSGi サービスランキングは、個々の競合ハンドラーの優先度を定義するために使用できます。