ロールアウトの競合

ブループリントのブランチと依存するライブコピーのブランチの両方で同じ名前の新しいページが作成されると、競合が発生することがあります。このような競合はロールアウト時に処理および解決する必要があります。

競合の処理

競合するページが(ブループリントやライブコピーのブランチ内に)存在するとき、MSM ではそれらの処理方法(処理の有無を含む)を定義できます。

ロールアウトがブロックされないように、次の内容を定義します。

  • ロールアウト時にどのページ(ブループリントまたはライブコピー)が優先されるか
  • どのページの名前が変更になるか(およびその方法)
  • 公開済みのコンテンツにどのような影響があるか

標準の AEM のデフォルト動作では、公開済みのコンテンツに影響はありません。つまり、ライブコピーのブランチに手動で作成されたページが公開されている場合、競合の処理およびロールアウト後にもそのコンテンツは公開されたままになります。

標準の機能に加えて、カスタマイズされた競合ハンドラーを追加して別のルールを実装できます。これらは、アクションを個別のプロセスとして公開することも許可します。

サンプルシナリオ

以降の節では、(手動で作成された)ブループリントとライブコピーのブランチの両方で作成された新しいサンプルページ b を使用して、競合を解決する様々な方法について説明します。

  • ブループリント:/b

    1 つの子ページを持つマスターページ bp-level-1

  • ライブコピー:/b

    子ページを 1 つ持つライブコピーブランチで手動作成されたページ lc-level-1

    • 公開時に子ページと共に /b としてアクティベートされます。

ロールアウト前

ロールアウト前のブループリント ロールアウト前のライブコピー ロールアウト前の公開
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 には、競合の管理が無効になった場合の動作が事前定義されています。

競合ハンドラー

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

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

デフォルトの競合ハンドラー

デフォルトの競合ハンドラーは ResourceNameRolloutConflictHandler です。

  • このハンドラーを使用すると、ブループリントページが優先されます。
  • カスタマイズされたハンドラーのランキングを高くする必要がある場合、このハンドラーのサービスランキングは service.ranking プロパティのデフォルト値より低く設定されます。ただし、必要に応じて柔軟に対応するために、ランキングを絶対最小値にはしません。

この競合ハンドラーでは、ブループリントが優先されます。ライブコピーページ /b は、ライブコピーのブランチ内で /b_msm_moved に移動されます。

  • ライブコピー:/b

    ライブコピーで /b_msm_moved に移動されます。これはバックアップとして機能し、コンテンツが失われないようにします。

    • lc-level-1 は移動されません。
  • ブループリント:/b

    ライブコピーページ /b にロールアウトされます。

    • bp-level-1 はライブコピーにロールアウトされます。

ロールアウト後

ロールアウト後のブループリント ロールアウト後のライブコピー ロールアウト後のライブコピー ロールアウト後の公開
b b b_msm_moved b
コメント ロールアウトされたブループリントページ b のコンテンツを持つ ライブコピーのブランチで手動で作成されたページ b のコンテンツを持つ 変更なし。ライブコピーのブランチで元の名前 b で手動作成され b_msm_moved という名前に変更されたページのコンテンツを含む
/bp-level-1 /bp-level-1 /lc-level-1 /lc-level-1
コメント 変更なし 変更なし

カスタマイズされたハンドラー

カスタマイズされた競合ハンドラーを使用すると、独自のルールを実装できます。サービスランキングメカニズムを使用することで、他のハンドラーとの関わり方を定義することもできます。

カスタマイズされた競合ハンドラーでは、次の操作を行うことができます。

  • 要件に合わせて名前を付けることができます。
  • 要件に合わせて開発および設定することができます。
    • 例えば、ライブコピーページが優先されるようにハンドラーを開発できます。
  • 特に、次の OSGi 設定を使用して設定されるように設計できます。
    • サービスランキング:他の競合ハンドラーに対する相対的な順序を定義します(service.ranking)。
      • デフォルト値は 0 です。

競合処理が無効になった場合の動作

手動で競合処理を無効にすると、AEM では、競合するページに対して何のアクションも実行されません。競合しないページは、正常にロールアウトされます。

注意

競合処理が無効になっていても、AEM では、競合が無視されることを示す表示は一切行われません。このような場合、この動作は明示的に設定する必要があるので、これが目的の動作であると見なされます。

この場合は、事実上、ライブコピーが優先されます。ブループリントページ /b はコピーされず、ライブコピーページ /b はそのまま残ります。

  • ブループリント:/b

    コピーされず、無視されます。

  • ライブコピー:/b

    同じままです。

ロールアウト後

ロールアウト後のブループリント ロールアウト後のライブコピー ロールアウト後の公開
b b b
コメント 変更なし。ライブコピーのブランチで手動で作成されたページ b のコンテンツを持つ 変更なし。ライブコピーのブランチで手動で作成されたページ b のコンテンツを含む
/bp-level-1 /lc-level-1 /lc-level-1
コメント 変更なし 変更なし

サービスランキング

OSGi サービスランキングは、個々の競合ハンドラーの優先度を定義するために使用できます。

このページ