MSM Ploot Conflicts

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

這些衝突需要在推出時處理並解決。

衝突處理

當衝突頁面確實存在時(在Blueprint和即時副本分支中),MSM可讓您定義應如何處理(甚至是如果)這些頁面。

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

  • 首次推出時,哪個頁面(藍圖或即時副本)會優先,

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

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

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

除了標準功能外,還可新增自訂的衝突處理常式,以實作不同的規則。 這些動作也可以允許以個別程式進行發佈動作。

藍本示例

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

  • 藍圖:/b

    首頁;1頁,bp-level-1

  • 即時副本:/b

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

    • 在發佈時以/b和子頁面一起啟動。

推出前

展開之前的藍圖 在轉存之前先使用拷貝 發佈之前先發佈
b
(在Blueprint分支中建立,準備推出)
b
(在即時副本分支中手動建立)
b
(包含在即時副本分支中手動建立之頁面b的內容)
/bp-level-1 /lc-level-1
(在即時副本分支中手動建立)
/lc-level-1
(包含在即時副本分支中手動建立的page
child-level-1的內容)

轉出管理器和衝突處理

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

這是使用Day CQ WCM Pollout Manager​的OSGi配置完成的:

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

    (rolloutmgr.conflicthandling.enabled)

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

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

衝突處理程式

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

AEM提供:

  • 預設衝突處理程式:

    • ResourceNameRolloutConflictHandler
  • 實施自訂處理常式的可能性。

  • 允許您設定每個單獨處理程式的優先順序的服務排名機制。 使用排名最高的服務。

預設衝突處理程式

預設衝突處理程式:

  • 稱為ResourceNameRolloutConflictHandler

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

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

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

  • 即時副本:/b

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

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

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

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

推出後

推出後的藍圖 轉出後即可使用拷貝
轉出後即可使用拷貝


推出後發佈

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

自定義處理程式

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

自訂的衝突處理常式可以:

  • 請根據您的需求命名。

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

  • 可設計為使用OSGi configuration進行配置;特別是:

    • 服務排名:

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

      預設值為 0。

衝突處理停用時的行為

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

注意

不AEM會顯示衝突正在被忽略,因為必須明確配置此行為,因此假定這是必需行為。

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

  • 藍圖:/b

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

  • 即時副本:/b

    保持不變。

推出後
推出後的藍圖 轉出後即可使用拷貝


推出後發佈

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

服務排名

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

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now