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