Conflictos de despliegue de MSM

Pueden producirse conflictos si se crean nuevas páginas con el mismo nombre de página en la rama del modelo y en una rama de Live Copy dependiente.

Estos conflictos deben manejarse y resolverse en el momento del despliegue.

Gestión de conflictos

Cuando existen páginas en conflicto (en las ramas de modelo y Live Copy), MSM le permite definir cómo deben manejarse (o incluso si).

Para garantizar que el despliegue no esté bloqueado, las definiciones posibles pueden incluir las siguientes:

  • qué página (modelo o Live Copy) tendrá prioridad durante el lanzamiento,

  • qué páginas se cambiarán de nombre (y cómo),

  • cómo afectará esto a cualquier contenido publicado.

    El comportamiento predeterminado de AEM (predeterminado) es que el contenido publicado no se verá afectado. Por lo tanto, si se ha publicado una página creada manualmente en la rama de Live Copy, dicho contenido se publicará después de la gestión y el despliegue del conflicto.

Además de la funcionalidad estándar, se pueden agregar controladores de conflicto personalizados para implementar distintas reglas. También pueden permitir acciones de publicación como un proceso individual.

Escenario de ejemplo

En las secciones siguientes utilizamos el ejemplo de una página nueva b, creado tanto en el modelo como en la rama de Live Copy (creado manualmente), para ilustrar los distintos métodos de resolución de conflictos:

  • modelo: /b

    Una página de formato; con 1 página secundaria, bp-level-1.

  • Live Copy: /b

    Una página creada manualmente en la rama de Live Copy; con 1 página secundaria, lc-level-1.

    • Se activa durante la publicación como /b, junto con la página secundaria.

Antes del despliegue

modelo antes de la implementación Live Copy antes del lanzamiento publicar antes del lanzamiento
b
(creado en rama de modelo, listo para lanzamiento)
b
(creado manualmente en la rama de Live Copy)
b
(contiene el contenido de la página b que se creó manualmente en la rama de Live Copy)
/bp-level-1 /lc-level-1
(creado manualmente en la rama de Live Copy)
/lc-level-1
(contiene el contenido de la página
child-level-1 que se creó manualmente en la rama de Live Copy)

Administrador de despliegue y gestión de conflictos

El administrador de despliegue le permite activar o desactivar la administración de conflictos.

Esto se realiza mediante la configuración OSGi del administrador de despliegue de gestión de contenido web CQ por día:

  • Gestionar conflictos con páginas creadas manualmente:

    ( rolloutmgr.conflicthandling.enabled)

    Se establece en true si el administrador de implementaciones debe gestionar los conflictos de una página creada en la Live Copy con un nombre que exista en el modelo.

AEM tiene comportamiento predefinido cuando la administración de conflictos se ha desactivado.

Controladores de conflictos

AEM utiliza controladores de conflictos para resolver cualquier conflicto de páginas que exista al implementar contenido desde un modelo a una Live Copy. Cambiar el nombre de las páginas es uno de los métodos (habituales) para resolver estos conflictos. Puede haber más de un controlador de conflictos en funcionamiento para permitir una selección de comportamientos diferentes.

AEM proporciona lo siguiente:

Controlador de conflictos predeterminado

El controlador de conflictos predeterminado:

  • Se llama ResourceNameRolloutConflictHandler

  • Con este controlador, la página de modelo tiene prioridad.

  • La clasificación de servicio para este controlador se establece en menor ( "p. ej. debajo del valor predeterminado para la variable service.ranking ) ya que se supone que los controladores personalizados necesitarán una clasificación más alta. Sin embargo, la clasificación no está al nivel mínimo absoluto para garantizar la flexibilidad cuando sea necesario.

Este controlador de conflictos da prioridad al modelo. La página de Live Copy /b se mueve (dentro de la rama de Live Copy) a /b_msm_moved.

  • Live Copy: /b

    Se mueve (dentro de la Live Copy) a /b_msm_moved. Esto actúa como una copia de seguridad y garantiza que no se pierda contenido.

    • lc-level-1 no se mueve.
  • modelo: /b

    Se despliega en la página de Live Copy /b.

    • bp-level-1 se despliega en livecopy.

Después del despliegue

modelo después del lanzamiento Live Copy después del lanzamiento
Live Copy después del lanzamiento


publicar después del lanzamiento

b b
(tiene el contenido de la página de modelo b que se presentó)
b_msm_moved
(tiene el contenido de la página b que se creó manualmente en la rama de Live Copy)
b
(sin cambios; contiene el contenido de la página original b que se creó manualmente en la rama de Live Copy y ahora se denomina b_msm_move)
/bp-level-1 /bp-level-1 /lc-level-1
(sin cambio)
/lc-level-1
(sin cambio)

Controladores personalizados

Los controladores de conflicto personalizados le permiten implementar sus propias reglas. Con el mecanismo de clasificación de servicios también puede definir cómo interactúan con otros controladores.

Los controladores de conflictos personalizados pueden hacer lo siguiente:

  • Nombrarse según sus necesidades.

  • Ser desarrollado/configurado según sus necesidades; por ejemplo, puede desarrollar un controlador para que la página de Live Copy tenga prioridad.

  • Se puede diseñar para que se configure usando la variable Configuración de OSGi; en particular:

    • Clasificación de servicios:

      Define el orden relacionado con otros controladores de conflictos ( service.ranking).

      El valor predeterminado es 0.

Comportamiento cuando la gestión de conflictos está desactivada

Si desactivar la gestión de conflictos a continuación, AEM no realiza ninguna acción en ninguna página conflictiva (las páginas no conflictivas se despliegan según lo esperado).

PRECAUCIÓN

AEM no da ninguna indicación de que se estén ignorando los conflictos, ya que este comportamiento debe configurarse explícitamente, por lo que se supone que es el comportamiento requerido.

En este caso, la Live Copy tiene prioridad. La página de modelo /b no se copia y la página Live Copy /b no se ha tocado.

  • modelo: /b

    No se copia en absoluto y se ignora.

  • Live Copy: /b

    Permanece igual.

Después del despliegue
modelo después del lanzamiento Live Copy después del lanzamiento


publicar después del lanzamiento

b b
(sin cambios; tiene el contenido de la página b que se creó manualmente en la rama de Live Copy)
b
(sin cambios; contiene el contenido de la página b que se creó manualmente en la rama de Live Copy)
/bp-level-1 /lc-level-1
(sin cambio)
/lc-level-1
(sin cambio)

Clasificación de servicios

La clasificación del servicio OSGi se puede utilizar para definir la prioridad de los controladores de conflictos individuales.

En esta página