롤아웃 충돌

블루프린트 분기 및 종속 라이브 카피 분기 모두에서 동일한 페이지 이름의 새 페이지를 만들면 충돌이 발생할 수 있습니다. 이러한 충돌은 롤아웃 시 처리 및 해결해야 합니다.

충돌 처리

블루프린트 및 라이브 카피 분기에 충돌하는 페이지가 있는 경우 MSM을 사용하여 처리 방법(또는 처리 여부)을 정의할 수 있습니다.

롤아웃을 차단하지 않도록 다음과 같은 정의를 사용할 수 있습니다.

  • 롤아웃 시 우선 순위가 높은 페이지(블루프린트 또는 라이브 카피)
  • 이름을 변경할 페이지(및 방법)
  • 게시된 콘텐츠에 미치는 영향

AEM의 기본 비헤이비어는 게시된 콘텐츠에 영향을 미치지 않는다는 것입니다. 따라서 라이브 카피 분기에서 수동으로 생성된 페이지가 게시되어 있는 경우 해당 콘텐츠는 충돌 처리 및 롤아웃 이후에도 계속 게시됩니다.

표준 기능 이외에도 맞춤화된 충돌 처리기를 추가하여 다른 규칙을 구현할 수 있습니다. 또한 개별 프로세스로 게시 작업을 허용할 수도 있습니다.

예시 상황

다음 섹션에서는 블루프린트 및 라이브 카피 분기 모두에 수동으로 생성된 새 페이지 b의 예를 사용하여 다양한 충돌 해결 방법을 설명합니다.

  • 블루프린트: /b

    한 개의 하위 페이지 bp-level-1을 가지는 마스터 페이지

  • 라이브 카피: /b

    한 개의 하위 페이지 lc-level-1을 가지는 라이브 카피 분기에 수동으로 생성된 페이지

    • 게시에서 하위 페이지와 함께 /b로 활성화됨

롤아웃 이전

롤아웃 이전의 블루프린트 롤아웃 이전의 라이브 카피 롤아웃 이전의 게시
b b b
댓글 블루프린트 분기에 생성됨, 롤아웃 준비됨 라이브 카피 브론치에 수동으로 생성됨 라이브 카피 분기에 수동으로 생성된 페이지 b의 콘텐츠 포함
/bp-level-1 /lc-level-1 /lc-level-1
댓글 라이브 카피 브론치에 수동으로 생성됨 라이브 카피 분기에 수동으로 생성된 페이지 child-level-1의 콘텐츠 포함

롤아웃 관리자 및 충돌 처리

롤아웃 관리자를 사용하여 충돌 관리를 활성화 또는 비활성화할 수 있습니다.

이는 일별 CQ WCM 롤아웃 관리자​의 OSGi 구성을 사용하여 수행됩니다. 롤아웃 관리자가 블루프린트에 존재하는 이름으로 라이브 카피에 생성된 페이지의 충돌을 처리해야 하는 경우 수동으로 생성된 페이지와의 충돌 해결(rolloutmgr.conflicthandling.enabled) 값을 true로 설정합니다.

AEM에는 충돌 관리가 비활성화되었을 때 실행되는 사전 정의된 비헤이비어가 있습니다.

충돌 처리기

AEM은 충돌 처리기를 사용하여 블루프린트에서 라이브 카피로 콘텐츠를 롤아웃할 때 발생하는 페이지 충돌을 해결합니다. 이러한 충돌을 해결하는 일반적인 방법은 페이지의 이름을 바꾸는 것입니다. 하나 이상의 충돌 처리기를 작동하여 다양한 비헤이비어를 실행할 수 있습니다.

AEM은 다음을 제공합니다.

  • 기본 충돌 처리기:
    • ResourceNameRolloutConflictHandler
  • 맞춤화된 처리기 구현 가능성
  • 각 개별 처리기의 우선 순위를 설정할 수 있는 서비스 순위 메커니즘
    • 순위가 가장 높은 서비스가 사용됩니다.

기본 충돌 처리기

기본 충돌 처리기는 ResourceNameRolloutConflictHandler입니다.

  • 이 처리기를 사용하면 블루프린트 페이지가 우선 순위를 갖습니다.
  • 이 처리기의 서비스 순위는 낮게 설정되어 있는데(service.ranking 속성의 기본값보다 낮음), 이는 맞춤화된 처리기에 더 높은 순위가 필요하다고 가정하기 때문입니다. 그러나 순위는 유연성을 보장하기 위한 절대적인 최소 조건이 아닙니다.

이 충돌 처리기를 사용하면 블루프린트가 우선 순위를 갖습니다. 예를 들어 라이브 카피 페이지 /b가 라이브 카피 분기 내에서 /b_msm_moved로 이동하게 됩니다.

  • 라이브 카피: /b

    라이브 카피 내에서 /b_msm_moved로 이동합니다. 이는 백업 역할을 하며 콘텐츠가 손실되지 않도록 합니다.

    • lc-level-1은 이동하지 않습니다.
  • 블루프린트: /b

    라이브 카피 페이지 /b로 롤아웃됩니다.

    • bp-level-1은 라이브 카피로 롤아웃됩니다.

롤아웃 이후

롤아웃 이후의 블루프린트 롤아웃 이후의 라이브 카피 롤아웃 이후의 라이브 카피 롤아웃 이후의 게시
b b b_msm_moved b
댓글 롤아웃된 블루프린트 페이지 b의 콘텐츠가 있음 라이브 카피 분기에 수동으로 생성된 페이지 b의 콘텐츠가 있음 변경 내용 없음, 라이브 카피 분기에 수동으로 생성된 원본 페이지 b(이제 b_msm_moved로 바뀜)의 콘텐츠 포함
/bp-level-1 /bp-level-1 /lc-level-1 /lc-level-1
댓글 변경 내용 없음 변경 내용 없음

맞춤화된 처리기

맞춤화된 충돌 처리기를 사용하면 나만의 규칙을 구현할 수 있습니다. 서비스 순위 메커니즘을 사용하여 이들 처리기가 다른 처리기와 상호 작용하는 방법을 지정할 수도 있습니다.

맞춤화된 충돌 처리기는

  • 요구 사항에 따라 이름이 지정될 수 있습니다.
  • 요구 사항에 따라 개발/구성될 수 있습니다.
    • 예를 들어 라이브 카피 페이지가 우선 순위를 갖도록 처리기를 개발할 수 있습니다.
  • OSGi 구성을 사용하여 구성되도록 디자인될 수 있습니다. 특히
    • 서비스 순위​는 다른 충돌 처리기와 관련된 순서를 정의합니다(service.ranking).
      • 기본값은 0입니다.

충돌 처리가 비활성화되었을 때 실행되는 비헤이비어

수동으로 충돌 처리를 비활성화하면 AEM은 충돌이 발생한 페이지에 어떤 조치도 취하지 않습니다. 충돌이 발생하지 않은 페이지는 정상적으로 롤아웃됩니다.

주의

충돌 처리가 비활성화되어 있는 경우 AEM은 충돌이 무시되고 있음을 알리지 않습니다. 이러한 경우 이 비헤이비어를 명시적으로 구성해야 하므로 이를 원하는 비헤이비어로 간주합니다.

이 경우 라이브 카피가 사실상 우선됩니다. 블루프린트 페이지 /b는 복사되지 않으며 라이브 카피 페이지 /b는 그대로 유지됩니다.

  • 블루프린트: /b

    복사되지 않고 무시됩니다.

  • 라이브 카피: /b

    그대로 유지됩니다.

롤아웃 이후

롤아웃 이후의 블루프린트 롤아웃 이후의 라이브 카피 롤아웃 이후의 게시
b b b
댓글 변경 내용 없음, 라이브 카피 분기에 수동으로 생성된 페이지 b의 콘텐츠가 있음 변경 내용 없음, 라이브 카피 분기에 수동으로 생성된 페이지 b의 콘텐츠 포함
/bp-level-1 /lc-level-1 /lc-level-1
댓글 변경 내용 없음 변경 내용 없음

서비스 순위

OSGi 서비스 순위를 사용하여 개별 충돌 처리기의 우선 순위를 정의할 수 있습니다.

이 페이지에서는