Conflitos de implantação do MSM

Conflitos podem ocorrer se novas páginas com o mesmo nome de página forem criadas na ramificação do blueprint e em uma ramificação dependente da live copy.

Esses conflitos precisam ser tratados e resolvidos na implantação.

Tratamento de conflitos

Quando páginas conflitantes existem (nas ramificações do blueprint e da live copy), o MSM permite definir como (ou mesmo se) elas devem ser tratadas.

Para garantir que a implantação não seja bloqueada, as possíveis definições podem incluir:

  • qual página (blueprint ou live copy) terá prioridade durante a implantação,

  • quais páginas serão renomeadas (e como),

  • como isso afetará qualquer conteúdo publicado.

    O comportamento padrão do AEM (pronto para uso) é que o conteúdo publicado não será afetado. Portanto, se uma página que foi criada manualmente na ramificação da live copy tiver sido publicada, esse conteúdo ainda será publicado após o tratamento do conflito e a implantação.

Além da funcionalidade padrão, os manipuladores de conflito personalizados podem ser adicionados para implementar regras diferentes. Eles também podem permitir a publicação de ações como um processo individual.

Exemplo de cenário

Nas seções a seguir, usamos o exemplo de uma nova página b, criado na ramificação do blueprint e da live copy (criado manualmente), para ilustrar os vários métodos de resolução de conflitos:

  • blueprint: /b

    Uma página principal; com 1 página secundária, nível bp-1.

  • live copy: /b

    Uma página criada manualmente na ramificação da live copy; com 1 página secundária, lc-level-1.

    • Ativado ao publicar como /b, junto com a página secundária.

Antes da implantação

blueprint antes da implantação live copy antes da implantação publicar antes da implantação
b
(criado na ramificação do blueprint, pronto para implantação)
b
(criado manualmente na ramificação da live copy)
b
(contém o conteúdo da página b que foi criado manualmente na ramificação da live copy)
/bp-level-1 /lc-level-1
(criado manualmente na ramificação da live copy)
/lc-level-1
(contém o conteúdo da página)
nível secundário-1 que foi criado manualmente na ramificação da live copy)

Gerenciador de implantação e tratamento de conflito

O gerenciador de implantação permite ativar ou desativar o gerenciamento de conflitos.

Isso é feito usando a configuração do OSGi do Gerenciador de implantaçao Day CQ WCM:

  • Lidar com conflitos com páginas criadas manualmente:

    ( rolloutmgr.conflicthandling.enabled)

    Definido como verdadeiro se o gerenciador de implantação deve lidar com conflitos de uma página criada na live copy com um nome que existe no blueprint.

O AEM tem comportamentos predefinidos quando o gerenciamento de conflitos foi desativado.

Manipuladores de conflito

O AEM usa manipuladores de conflito para resolver quaisquer conflitos de página que existam ao implantar conteúdo de um blueprint em uma live copy. A renomeação de páginas é um dos métodos (comuns) para resolver esses conflitos. Mais de um manipulador de conflitos pode estar operacional para permitir uma seleção de comportamentos diferentes.

O AEM fornece:

  • O manipulador de conflitos padrão:

    • ResourceNameRolloutConflictHandler
  • A possibilidade de implementar um manipulador personalizado.

  • O mecanismo de classificação de serviço que permite definir a prioridade de cada manipulador individual. O serviço com a classificação mais alta é usado.

Manipulador de conflito padrão

O manipulador de conflitos padrão:

  • É chamado ResourceNameRolloutConflictHandler

  • Com esse manipulador, a página do blueprint recebe prioridade.

  • A classificação de serviço para esse manipulador é definida como baixa ( "ou seja, abaixo do valor padrão para o service.ranking propriedade ), pois a suposição é que os manipuladores personalizados precisarão de uma classificação mais alta. No entanto, a classificação não é o mínimo absoluto para garantir flexibilidade quando necessária.

Esse manipulador de conflitos dá prioridade ao blueprint. A página da live copy /b é movido (dentro da ramificação da live copy) para /b_msm_moved.

  • live copy: /b

    É movido (dentro da live copy) para /b_msm_moved. Isso funciona como um backup e garante que nenhum conteúdo seja perdido.

    • lc-level-1 não é movido.
  • blueprint: /b

    É implantado na página da live copy /b.

    • bp-level-1 é implantado na live copy.

Após a implantação

blueprint após implantação live copy após a implantação
live copy após a implantação


publicar após implantação

b b
(tem o conteúdo da página b do blueprint que foi implantado)
b_msm_moved
(tem o conteúdo da página b que foi criado manualmente na ramificação da live copy)
b
(sem alterações; contém o conteúdo da página original b que foi criado manualmente na ramificação da live copy e agora é chamado de b_msm_moved)
/bp-level-1 /bp-level-1 /lc-level-1
(sem alteração)
/lc-level-1
(sem alteração)

Manipuladores personalizados

Os manipuladores de conflito personalizados permitem que você implemente suas próprias regras. Usando o mecanismo de classificação de serviço, você também pode definir como eles interagem com outros manipuladores.

Os manipuladores de conflito personalizados podem:

  • Ser nomeados de acordo com suas necessidades.

  • Ser desenvolvidos/configurados de acordo com seus requisitos; por exemplo, você pode desenvolver um manipulador para que a página da Live Copy tenha prioridade.

  • Pode ser projetado para ser configurado usando o Configuração OSGiem especial:

    • Classificação do serviço:

      Define a ordem relacionada a outros manipuladores de conflito ( service.ranking).

      O valor padrão é 0.

Comportamento quando o manuseio de conflitos é desativado

Se você desativar tratamento de conflitos em seguida, o AEM não executa nenhuma ação em páginas conflitantes (as páginas não conflitantes são implantadas conforme esperado).

ATENÇÃO

O AEM não dá nenhuma indicação de que os conflitos estão sendo ignorados, pois esse comportamento deve ser configurado explicitamente, portanto, presume-se que seja o comportamento necessário.

Nesse caso, a live copy tem prioridade efetiva. A página do blueprint /b não é copiado e a página da live copy /b é deixada intocada.

  • blueprint: /b

    Não é copiado, mas é ignorado.

  • live copy: /b

    Fica igual.

Após a implantação
blueprint após implantação live copy após a implantação


publicar após implantação

b b
(sem alterações; tem o conteúdo da página b que foi criado manualmente na ramificação da live copy)
b
(sem alterações; contém o conteúdo da página b que foi criado manualmente na ramificação da live copy)
/bp-level-1 /lc-level-1
(sem alteração)
/lc-level-1
(sem alteração)

Classificações de serviço

A classificação de serviço do OSGi pode ser usada para definir a prioridade de manipuladores de conflito individuais.

Nesta página