ロールアウトの競合 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

ロールアウトマネージャーを使用すると、競合の管理をアクティベートまたはアクティベート解除できます。

これは、Day CQ WCM Rollout ManagerOSGi 設定を使用して行います。ロールアウトマネージャーが、ブループリントに存在する名前を使用してライブコピーで作成されたページからの競合を処理する場合は、手動で作成されたページで競合を処理rolloutmgr.conflicthandling.enabled)の値を true に設定します。

AEM には、競合の管理が無効になった場合の動作が事前定義されています。

競合ハンドラー conflict-handlers

AEM では、コンテンツをブループリントからライブコピーにロールアウトするときに存在するページの競合を、競合ハンドラーを使用して解決します。ページの名前変更は、このような競合を解決する一般的な方法です(唯一の方法ではありません)。別の動作を選択できるように、複数の競合ハンドラーを有効にすることもできます。

AEM には次の機能があります。

デフォルトの競合ハンドラー 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 では、競合するページに対して何のアクションも実行されません。競合しないページは、正常にロールアウトされます。

CAUTION
競合処理が無効になっていても、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 サービスランキングは、個々の競合ハンドラーの優先度を定義するために使用できます。

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab