MSM轉出衝突

如果在Blueprint分支和相依的即時副本分支中建立了具有相同頁面名稱的新頁面,則可能會發生衝突。

這類衝突需要在推出時處理和解決。

衝突處理

當發生衝突的頁面確實存在時(在Blueprint和Live Copy分支中),MSM可讓您定義應如何(甚至是)處理這些頁面。

為確保轉出未遭到封鎖,可能的定義可能包括:

  • 轉出期間哪個頁面(blueprint或即時副本)會具有優先順序,

  • 將重新命名哪些頁面(以及如何),

  • 這會如何影響任何已發佈的內容。

    AEM的預設行為(現成)是已發佈內容將不會受到影響。 因此,如果發佈了在即時副本分支中手動建立的頁面,該內容在衝突處理和轉出後仍會發佈。

除了標準功能外,還可以添加自定義衝突處理程式以實施不同的規則。 這些也可允許以個別程式發佈動作。

範例案例

在以下幾節中,我們使用在Blueprint和Live Copy分支中(手動建立)建立的新頁面b的範例來說明各種衝突解決方法:

  • blueprint:/b

    主版頁面;1個子頁,bp-level-1

  • 即時副本:/b

    在即時副本分支中手動建立的頁面;包含1個子頁,lc-level-1

    • /b發佈時啟動,連同子頁面一起啟動。

轉出前

開始使用的Blueprint 轉出前的即時副本 轉出前發佈
b
(在blueprint分支中建立,可轉出)
b
(在即時副本分支中手動建立)
b
(包含在即時副本分支中手動建立之頁面b的內容)
/bp-level-1 /lc-level-1
(在即時副本分支中手動建立)
/lc-level-1
(包含在Live Copy分支中手動建立的page
child-level-1的內容)

轉出管理器和衝突處理

轉出管理器可讓您啟用或停用衝突管理。

這是使用​Day CQ WCM轉出管理器​的OSGi設定來完成的:

  • 使用手動建立的頁面處理衝突:

    (rolloutmgr.conflicthandling.enabled)

    如果轉出管理器應處理來自即時副本中建立之頁面的衝突,且該頁面的名稱存在於Blueprint中,則設為true。

當衝突管理已停用🔗時,AEM具有預先定義的行為。

衝突處理程式

AEM使用衝突處理常式來解決從Blueprint將內容轉出至Live Copy時存在的任何頁面衝突。 更名頁面是解決此類衝突的一種(通常)方法。 可以操作多個衝突處理程式以允許選擇不同的行為。

AEM提供:

預設衝突處理程式

預設衝突處理程式:

  • 稱為ResourceNameRolloutConflictHandler

  • 使用此處理常式時,Blueprint頁面會優先。

  • 此處理常式的服務排名設為低(即在service.ranking屬性的預設值下),因為假設自訂處理常式需要較高的排名。 然而,排名並非確保必要時靈活性的絕對最小值。

此衝突處理程式優先於Blueprint。 即時副本頁面/b會移動(在即時副本分支內)至/b_msm_moved

  • 即時副本:/b

    已移至(在即時副本內)/b_msm_moved。 這可作為備份,並確保不會遺失任何內容。

    • lc-level-1 未移動。
  • blueprint:/b

    已推出至即時副本頁面/b

    • bp-level-1 會轉出至livecopy。

轉出後

轉出後的blueprint 轉出後的即時副本
轉出後的即時副本


轉出後發佈

b b
(具有已推出的blueprint頁面b的內容)
b_msm_moved
(具有在即時副本分支中手動建立之頁面b的內容)
b
(無變化);包含在即時副本分支中手動建立的原始頁面b的內容,現在稱為b_msm_moved)
/bp-level-1 /bp-level-1 /lc-level-1
(無更改)
/lc-level-1
(無更改)

自定義處理程式

自定義的衝突處理程式允許您實施自己的規則。 使用服務排名機制,您也可以定義它們與其他處理常式的互動方式。

自定義衝突處理程式可以:

  • 根據你的要求命名。

  • 根據您的需求開發/配置;例如,您可以開發處理常式,讓即時副本頁面優先。

  • 可設計為使用OSGi配置進行配置;尤其是:

    • 服務排名:

      定義與其他衝突處理程式(service.ranking)相關的順序。

      預設值為 0。

已停用衝突處理時的行為

如果您手動停用衝突處理,則AEM不會在任何衝突頁面上採取任何動作(非衝突頁面會如預期般推出)。

注意

AEM不會指出衝突正在遭到忽略,因為此行為必須明確設定,因此會假設這是必要行為。

在這種情況下,有效的即時副本優先。 Blueprint頁面/b不會複製,且即時副本頁面/b不會受到影響。

  • blueprint:/b

    完全不會複製,但會忽略。

  • 即時副本:/b

    保持不變。

轉出後
轉出後的blueprint 轉出後的即時副本


轉出後發佈

b b
(無變化);具有在即時副本分支中手動建立之頁面b的內容)
b
(無變化);包含在即時副本分支中手動建立之頁面b的內容)
/bp-level-1 /lc-level-1
(無更改)
/lc-level-1
(無更改)

服務排名

OSGi服務排名可用於定義單個衝突處理程式的優先順序。

本頁內容