복제 문제 해결

이 페이지에서는 복제 문제를 해결하는 방법에 대한 정보를 제공합니다.

문제

일부 이유로 복제(역 복제 제외)가 실패합니다.

해상도

복제가 실패하는 이유는 여러 가지가 있습니다. 이 문서에서는 이러한 문제를 분석할 때 발생할 수 있는 접근 방식을 설명합니다.

활성화 버튼을 클릭하면 복제가 전혀 트리거됩니까? 그렇지 않은 경우

  1. /crx/explorer로 이동하여 관리자로 로그인합니다.
  2. "콘텐츠 탐색기" 열기
  3. /bin/replicate 또는 /bin/replicate.json 노드가 있는지 확인하십시오. 노드가 있으면 노드를 삭제하고 저장합니다.

복제 에이전트 큐에서 복제가 큐에 올라가 있습니까?

/etc/replication/agents.author.html로 이동한 다음 복제 에이전트를 클릭하여 확인합니다.

하나의 에이전트 큐 또는 몇 개의 에이전트 큐가 중지되는 경우:

  1. 큐에 차단된 상태가 표시됩니까? 그렇다면 게시 인스턴스가 실행 중이 아니거나 완전히 응답하지 않습니까? 게시 인스턴스를 확인하여 문제가 있는지 확인합니다(예: 로그를 확인하고 OutOfMemory 오류 또는 다른 문제가 있는지 확인합니다.). 그러면 보통 속도가 느려지면 스레드 덤프를 보고 분석하십시오.

  2. 큐 상태에 큐가 활성 상태임 - # 보류 중​이 표시됩니까? 기본적으로 복제 작업은 게시 인스턴스 또는 디스패처가 응답하기를 기다리는 소켓 읽기에 중단될 수 있습니다. 이는 게시 인스턴스 또는 디스패처가 로드 속도가 높거나 잠금 상태에 있음을 의미합니다. 작성자의 스레드 덤프를 가져다가 이 경우 게시합니다.

    • 스레드 덤프 분석기에서 작성자의 스레드 덤프를 열고 복제 에이전트의 sling 이벤트 작업이 socketRead에 고정되어 있는지 확인합니다.
    • 스레드 덤프 분석기의 게시에서 스레드 덤프를 열고 게시 인스턴스가 응답하지 않을 수 있는 원인을 분석합니다. 작성자로부터 복제를 받는 스레드인 POST /bin/receive가 포함된 스레드가 해당 이름으로 표시됩니다.

모든 에이전트 큐가 중지되는 경우

  1. 저장소 손상 또는 일부 다른 문제로 인해 /var/replication/data 아래에서 특정 컨텐츠를 직렬화할 수 없을 수 있습니다. 관련 오류가 있는지 logs/error.log을 확인하십시오. 잘못된 복제 항목을 지우려면 다음을 수행합니다.

    1. https://<host>:<port>/crx/de로 이동하여 관리자 권한으로 로그인합니다.
    2. 상단 메뉴에서 "도구"를 클릭합니다.
    3. 돋보기 단추를 클릭합니다.
    4. "XPath"를 [유형]으로 선택합니다.
    5. "쿼리" 상자에 @slingevent:created의 /jcr:root/var/eventing/jobs/element(*,slingevent:Job) 순서를 입력합니다.
    6. "검색"을 클릭합니다.
    7. 그 결과, 맨 위의 항목이 가장 최근에 발생한 이벤트 작업입니다. 각 복제본을 클릭하고 대기열 맨 위에 표시되는 내용과 일치하는 고정 복제본을 찾습니다.
  2. Sling 이벤트 프레임워크 작업 큐에 문제가 있을 수 있습니다. /system/console에서 org.apache.sling.event 번들을 다시 시작합니다.

  3. 작업 처리가 완전히 꺼진 것일 수 있습니다. [Sling Eventing] 탭의 [펠릭스 콘솔] 아래에서 확인할 수 있습니다. Apache Sling 이벤트(작업 처리가 비활성화됨!)가 표시되는지 확인합니다.

    • 이 예이면 Felix Console의 구성 탭에서 Apache Sling 작업 이벤트 핸들러를 선택합니다. '작업 처리 사용' 확인란이 선택 취소된 것일 수 있습니다. 이 확인란을 선택했는데도 여전히 '작업 처리가 비활성화됨'으로 표시되는 경우 /apps/system/config 아래에 작업 처리를 비활성화하는 오버레이가 있는지 확인하십시오. 부울 값을 true로 설정하여 jobmanager.enabled용 osgi:config 노드를 만들고 활성화가 시작되었고 대기열에 더 이상 작업이 없는지 다시 확인하십시오.
  4. DefaultJobManager 구성이 일관성이 없는 상태로 되는 경우도 있습니다. 이 문제는 OSGiconsole을 통해 'Apache Sling 작업 이벤트 핸들러' 구성을 수동으로 수정할 때 발생할 수 있습니다(예: '작업 처리 사용' 속성을 비활성화하고 다시 활성화하며 구성 저장).

    • 이때 crx-quickstart/launchpad/config/org/apache/sling/event/impl/jobs/DefaultJobManager.config에 저장되는 DefaultJobManager 구성이 일치하지 않는 상태로 전환됩니다. 'Apache Sling 작업 이벤트 핸들러' 속성에 '작업 처리 사용 가능'이 체크 인 상태로 표시되더라도, Sling 이벤트 탭으로 이동하면 '작업 처리 사용 안 함'이라는 메시지가 표시되고 복제가 작동하지 않습니다.
    • 이 문제를 해결하려면 OSGi 콘솔의 구성 페이지로 이동하여 'Apache Sling 작업 이벤트 핸들러' 구성을 삭제해야 합니다. 그런 다음 클러스터 노드기본을 다시 시작하여 구성을 다시 일관된 상태로 되돌립니다. 이 문제가 해결되면 복제 작업이 다시 시작됩니다.

replication.log 만들기

모든 복제 로깅이 DEBUG 수준에서 개별 로그 파일에 추가되도록 설정하는 것이 유용할 수 있습니다. 이를 위해 진행되는 작업:

  1. https://host:port/system/console/configMgr으로 이동하여 관리자로 로그인합니다.

  2. Apache Sling Logging Logger 공장에서 팩토리 구성 오른쪽에 있는 + 버튼을 클릭하여 인스턴스를 만듭니다. 그러면 새로운 로깅 로거가 만들어집니다.

  3. 다음과 같은 구성을 설정합니다.

    • 로그 수준:디버그
    • 로그 파일 경로:logs/replication.log
    • 카테고리:com.day.cq.replication
  4. 이벤트/작업과 관련된 문제가 의심되는 경우 categories:org.apache.sling.event 아래에 이 java 패키지를 추가할 수도 있습니다.

복제 에이전트 큐 일시 중지 중

때로 복제 큐를 일시 중지하여 비활성화하지 않고 작성자 시스템의 로드를 줄이는 것이 적절할 수 있습니다. 현재 이것은 잘못된 포트를 임시로 구성하는 경우에만 가능합니다. 5.4 버전부터는 복제 에이전트 큐에 일시 중지 버튼이 일부 제한되므로

  1. 상태는 지속되지 않으므로 서버를 다시 시작하거나 복제 번들을 재사용하는 경우 다시 실행 상태로 돌아갑니다.
  2. 일시 중지는 더 짧은 기간(다른 스레드의 복제 작업이 없는 후 OOB 1시간) 동안 유휴 상태이며 더 이상 사용하지 않습니다. 유휴 스레드를 피하는 스링 기능이 있기 때문입니다. 기본적으로 작업 큐 스레드가 더 오랜 시간 동안 사용되지 않았는지 확인하고, 그렇게 되면 정리 주기를 시작합니다. 정리 주기 때문에 스레드가 중단되고 따라서 일시 중지된 설정이 손실됩니다. 작업이 지속되므로 새 스레드를 시작하여 일시 중지된 구성에 대한 세부 정보가 없는 큐를 처리합니다. 이 큐로 인해 실행 상태가 됩니다.

사용자 활성화에서 페이지 권한이 복제되지 않습니다.

페이지 권한은 사용자가 아닌 액세스 권한이 부여된 노드 아래에 저장되므로 복제되지 않습니다.

일반적으로 페이지 권한은 작성자에서 게시로 복제해서는 안 되며 기본적으로 복제되지 않습니다. 액세스 권한은 두 환경에서 달라야 하기 때문입니다. 따라서 작성자와 별도로 게시 시 ACL을 구성하는 것이 좋습니다.

작성자에서 게시으로 네임스페이스 정보를 복제할 때 복제 큐가 차단됨

경우에 따라 작성 인스턴스에서 게시 인스턴스로 네임스페이스 정보를 복제하려고 하면 복제 큐가 차단됩니다. 이 문제는 복제 사용자에게 jcr:namespaceManagement 권한이 없기 때문에 발생합니다. 이 문제를 방지하려면 다음을 확인하십시오.

  • 복제 사용자(전송 탭>사용자 아래에 구성된 것)도 게시 인스턴스에 있습니다.
  • 사용자는 콘텐트가 설치된 경로에서 읽기 및 쓰기 권한을 가집니다.
  • 저장소 수준에서 사용자에게 jcr:namespaceManagement 권한이 있습니다. 다음과 같이 권한을 부여할 수 있습니다.
  1. 관리자로 CRX/DE( https://localhost:4502/crx/de/index.jsp)에 로그인합니다.
  2. 액세스 제어 탭을 클릭합니다.
  3. 저장소​를 선택합니다.
  4. 항목 추가(더하기 아이콘)를 클릭합니다.
  5. 사용자 이름을 입력합니다.
  6. 권한 목록에서 jcr:namespaceManagement을 선택합니다.
  7. 확인을 클릭합니다.

이 페이지에서는