MSM 转出冲突

如果在Blueprint分支和从属Live Copy分支中创建具有相同页面名称的新页面,则可能会发生冲突。

转出时需要处理和解决此类冲突。

冲突处理

当存在冲突的页面(在Blueprint和Live Copy分支中)时,MSM允许您定义应如何处理(甚至是如果)这些页面。

为了确保转出不被阻止,可能的定义可以包括:

  • 在转出过程中,哪个页面(blueprint或live copy)将具有优先级,

  • 将重命名哪些页面(以及如何重命名)、

  • 这将对任何已发布内容有何影响。

    AEM的默认行为(即装即用)是发布的内容将不会受到影响。 因此,如果在Live Copy分支中手动创建的页面已发布,则该内容在处理和转出冲突后仍会发布。

除了标准功能外,还可以添加自定义的冲突处理程序来实施其他规则。它们还允许将操作发布为单独的过程。

示例场景

在以下部分中,我们使用了新页面的示例 b,创建于blueprint和live copy分支(手动创建)中,以说明各种冲突解决方法:

  • Blueprint:/b

    主控页面;有1个子页,bp-level-1。

  • live copy: /b

    在Live Copy分支中手动创建的页面;具有1个子页面, lc-level-1.

    • 在发布为 /b 时与子页面一起激活.

转出前

转出前的Blueprint 转出前的Live Copy 转出前发布
b
(在blueprint分支中创建,准备转出)
b
(在live copy分支中手动创建)
b
(包含在Live Copy分支中手动创建的页面b的内容)
/bp-level-1 /lc-level-1
(在live copy分支中手动创建)
/lc-level-1
(包含页面内容
child-level-1(在live copy分支中手动创建)

转出管理器和冲突处理

转出管理器允许您激活或停用冲突管理。

这是使用完成的 OSGi配置 of Day CQ WCM转出管理器:

  • 处理与手动创建的页面的冲突:

    ( rolloutmgr.conflicthandling.enabled)

    如果转出管理器应处理来自在Live Copy中创建且Blueprint中存在名称的页面的冲突,则设置为true。

AEM 停用冲突管理时的预定义行为.

冲突处理程序

AEM使用冲突处理程序来解决在将内容从Blueprint转出到Live Copy时存在的任何页面冲突。 重命名页面是解决此类冲突的一种(通常)方法。 可以运行多个冲突处理程序以允许选择不同的行为。

AEM 提供:

默认冲突处理程序

默认冲突处理程序:

  • 调用 ResourceNameRolloutConflictHandler

  • 对于此处理程序,Blueprint 页面将获得优先权。

  • 此处理程序的服务排名设置得较低(“的默认值以下 service.ranking 属性),因为假定自定义处理程序将需要更高的排名。 然而,排名并不是在必要时确保灵活性的绝对最低标准。

此处理程序为 Blueprint 页面提供优先权。Live Copy页面 /b 将(在live copy分支内)移动到 /b_msm_moved.

  • live copy: /b

    将(在Live Copy中)移动到 /b_msm_moved. 这将充当备份,并确保不丢失任何内容。

    • 不会移动 lc-level-1
  • Blueprint:/b

    已转出到Live Copy页面 /b.

    • bp-level-1 将转出到Live Copy中。

转出后

转出后的Blueprint 转出后的Live Copy
转出后的Live Copy


转出后发布

b b
(包含已推出的Blueprint页面b的内容)
b_msm_moved
(具有在Live Copy分支中手动创建的页面b的内容)
b
(无变动)包含在Live Copy分支中手动创建且现在称为b_msm_moved的原始页面b的内容
/bp-level-1 /bp-level-1 /lc-level-1
(无更改)
/lc-level-1
(无更改)

自定义处理程序

自定义冲突处理程序允许您实施自己的规则。利用服务排名机制,您还可以定义它们如何与其他处理程序交互。

自定义冲突处理程序可以:

  • 根据您的要求进行命名。

  • 根据您的要求开发/配置;例如,您可以开发一个处理程序,以便优先提供live copy页面。

  • 可以设计为使用 OSGi配置;特别是:

    • 服务排名:

      定义与其他冲突处理程序相关的顺序( service.ranking)。

      默认值为 0。

冲突处理停用时的行为

如果您手动 停用冲突处理 然后,AEM不对任何冲突页面执行任何操作(未冲突页面会按预期推出)。

注意

AEM不会指示冲突被忽略,因为必须明确配置此行为,因此假定它是必需行为。

在这种情况下,有效地优先使用Live Copy。 Blueprint页面 /b 将不会复制,并且Live Copy页面将不会复制 /b 保持不变。

  • Blueprint:/b

    根本不复制,而是忽略。

  • live copy: /b

    保持不变。

转出后
转出后的Blueprint 转出后的Live Copy


转出后发布

b b
(无变动)具有在live copy分支中手动创建的页面b的内容)
b
(无变动)包含在live copy分支中手动创建的页面b的内容)
/bp-level-1 /lc-level-1
(无更改)
/lc-level-1
(无更改)

服务排名

OSGi 服务排名可用于定义各个冲突处理程序的优先级。

在此页面上