Tajo 사전 이용 신청

이름과 이메일 주소를 입력하세요. Tajo 이용 신청을 확인할 수 있는 링크를 이메일로 보내드립니다.

초급 6분

멈추거나 실패한 동기화 복구하기

워커가 멈추거나 동기화 실행이 실패했을 때 Tajo가 스스로 하는 일, 동기화 페이지에 표시되는 내용, 그리고 고객이 직접 나서야 하는 경우(재시도, 재연결, 매핑 수정, 다시 게시)를 설명합니다.

동기화 실행은 워커가 다시 시작되거나, 상대 시스템이 다운되거나, 레코드가 거부되어 중간에 멈출 수 있습니다. 워커가 멈추거나 일시적인 장애가 지나간 뒤에는 Tajo가 스스로 동기화를 이어 갑니다. 지난 7일 안에 기록한 레코드는 다시 보내지 않습니다. 이 페이지에서는 Tajo가 하는 일, 동기화 페이지에서 보이는 내용, 그리고 고객이 직접 나서야 하는 몇 가지 경우를 설명합니다.

빠른 확인 Connections 아래 Syncs and mappings에서 동기화를 열고 Run history의 가장 최근 실행을 읽으세요. 실패한 실행에는 무슨 일이 있었는지와 다음에 무엇을 해야 하는지가 나와 있습니다.

Tajo가 스스로 하는 일

커서. 실행은 동기화에 저장된 커서부터 소스를 배치 단위로 읽습니다. 커서는 배치의 모든 레코드가 기록된 경우에만 그 배치 끝에서 앞으로 이동합니다. 실행이 실패하면 문제없이 도달한 마지막 위치가 유지됩니다. 다음 실행은 거기서 시작하므로, 중단된 배치는 건너뛰지 않고 다시 읽힙니다.

전송 원장. 레코드는 기록되기 전에 전송 키를 받습니다. 키는 동기화, 소스, 페이지 커서, 페이지 안에서 레코드의 위치, 레코드 자체의 해시이므로 개인 데이터를 담지 않습니다. 대상 시스템을 호출하기 전에 키가 선점됩니다. 쓰기가 성공하면 키는 완료로 표시되고 7일 동안 보관됩니다. 키는 어느 실행이 요청하는지와 무관하므로, 재시도든 나중의 예약 실행이든 같은 레코드에 대해 같은 키를 도출합니다. 그 7일 안에는 저장된 결과가 쓰이고 대상 시스템은 다시 호출되지 않습니다. 그래서 다시 재생된 배치가 두 번 기록되지 않습니다.

한 번에 하나의 실행. 동기화마다 리스가 하나 있고, 진행 중인 실행이 전체 수명 동안 이를 보유합니다. 리스에는 자체 토큰이 있고 수명은 15분이며, 실행이 작업하는 동안 5분마다 갱신됩니다. 리스를 잃은 실행은 두 번 쓰지 않도록 다음 쓰기나 체크포인트 전에 멈춥니다. 워커가 멈추면 그 리스는 더 이상 갱신되지 않고 15분 안에 만료됩니다.

자동 재시도. 대기열에 들어간 실행이 실패하면 최대 5회까지 시도합니다. Tajo는 두 번째 시도 전에 60초를 기다리고, 그다음에는 120초, 240초, 480초를 기다립니다. 고객이 직접 시작한 재시도나 테스트 실행은 한 번만 실행됩니다. 이미 진행 중인 실행과 충돌한 실행은 재시도하지 않으며, 게시된 버전이나 연결이 더 이상 유효하지 않은 실행도 마찬가지입니다.

멈춘 실행. Tajo가 일정에 따라 실행하는 동기화에서는, 시작한 지 한 시간이 넘었고 더 이상 리스를 쥐고 있지 않은 실행이 닫히고 새 실행이 대기열에 들어갑니다. 닫힌 실행에는 “The run stopped reporting progress and was closed.”(실행이 진행 상황 보고를 멈춰 닫혔습니다)가 표시됩니다. 즉 멈춘 실행의 리스는 길어야 15분 유지되고, 예약 동기화의 멈춘 실행은 한 시간 뒤에 대체됩니다. 어떤 동기화가 일정에 따라 실행되는지는 데이터 동기화 이해하기에 나와 있습니다.

반복 실패 후 일시 중지. 동기화를 마지막으로 변경한 뒤 끝난 최근 5회의 실행이 모두 실패하면, Tajo는 동기화를 일시 중지합니다. 동기화 페이지에는 마지막 오류와 함께 “Paused automatically by the failure circuit breaker”가 표시됩니다. 실행이 한 번 성공하면 횟수가 초기화됩니다. 일시 중지된 동기화는 저절로 다시 시작되지 않습니다. 고객이 원인을 고치고 다시 게시할 때까지 멈춰 있습니다.

매시간 점검. Tajo는 매시 13분에, 활성 동기화가 있는데 지난 24시간 동안 성공한 실행이 없는 워크스페이스를 자체 팀에 알립니다. 실행이 하나도 기록되지 않은 워크스페이스도 포함됩니다. 알림은 한 번 울리고, 실행이 성공한 뒤에야 다시 울립니다. 가장 오래된 활성 동기화가 활성화되거나 변경된 지 24시간이 안 된 워크스페이스는 아직 점검하지 않습니다. 이 알림은 고객이 아니라 Tajo에 전달되며, 동기화를 바꾸지 않습니다.

보이는 내용

Syncs and mappings에서 동기화를 엽니다. Run history에는 실행마다 읽은 레코드 중 기록한 레코드 수, 실패 수, 소요 시간, 시작 시각이 나열됩니다. 상태는 Queued, Running, Succeeded, Partial(일부 레코드 실패), Failed 중 하나입니다.

  • 실행 중인데 2분 동안 진행 상황을 보고하지 않은 실행에는 “Waiting for a fresh progress update”(새 진행 상황 업데이트를 기다리는 중)가 표시됩니다.
  • 실패한 실행에는 무슨 일이 있었는지에 대한 한 문장, 다음에 무엇을 할지에 대한 한 문장, 실패 이름, 실행 ID가 표시됩니다.
  • Syncs 페이지의 View DLQ에는 모든 동기화의 실패한 실행과 부분 실패한 실행이 각각 Retry 버튼과 함께 나열됩니다.

해야 할 일

  1. 가장 최근의 실패한 실행을 읽습니다. 그 “다음에 할 일” 줄이 다음 단계입니다. 가장 자주 만나는 실패는 아래 표에 정리했습니다.
  2. “Nothing”이라고 되어 있으면 기다립니다. 다음 예약 실행이 저절로 복구합니다.
  3. 동기화를 다시 실행하라고 되어 있으면, View DLQ에서 실패한 실행의 Retry를 누릅니다. 재시도는 저장된 커서부터 시작하므로, 이미 기록된 배치는 다시 기록되지 않습니다. 재시도가 성공하면 실패한 실행이 목록에서 사라집니다.
  4. 동기화가 일시 중지되었다면, 배너에 나온 원인을 고친 뒤 Publish sync 또는 Request publish approval로 동기화를 다시 게시합니다.
  5. 같은 실패가 다시 나타나면, 실패한 실행 아래에 표시된 실행 ID를 저희에게 보내 주세요.

각 실패 이름은 무슨 일이 있었는지에 대한 한 문장, 다음에 무엇을 할지에 대한 한 문장, 그리고 누가 고치는지(고객 또는 Tajo)에 대응합니다.

실패 이름무슨 일이 있었나해야 할 일고치는 쪽
lease_conflict이 동기화의 다른 실행이 이미 진행 중이었습니다.할 일이 없습니다. 진행 중인 실행이 끝나고, 다음 예약 실행은 정상적으로 시작됩니다.Tajo
lease_lost실행이 도중에 자리를 잃어 두 번 쓰지 않도록 멈췄습니다.동기화를 다시 실행하세요.Tajo
lease_unavailable동기화가 실행 자리를 확보하지 못했습니다.동기화를 다시 실행하세요. 같은 방식으로 실패하면 실행 ID를 저희에게 보내 주세요.Tajo
stale_job_swept실행이 진행 상황 보고를 멈춰 닫혔습니다.동기화를 다시 실행하세요.Tajo
provider_rate_limited상대 시스템이 속도를 늦춰 달라고 요청했습니다.할 일이 없습니다. 다음 예약 실행을 기다리세요.Tajo
provider_unavailable상대 시스템을 사용할 수 없었거나 제시간에 응답하지 않았습니다.할 일이 없습니다. 다음 예약 실행을 기다리세요. 하루 동안 같은 방식으로 실패하면 실행 ID를 저희에게 보내 주세요.Tajo
connection_missing동기화가 쓰는 도구가 이 워크스페이스에 연결되어 있지 않습니다. 실행에 그 도구 이름이 나옵니다.그 도구를 연결한 뒤 동기화를 다시 실행하세요.고객
connection_unauthorized상대 시스템이 저희의 접근을 거부했습니다.연결을 다시 연결해 새 인증을 받은 뒤 동기화를 다시 실행하세요.고객
destination_rejected대상 시스템이 이 실행의 모든 레코드를 거부했습니다.필드 매핑을 대상 시스템의 필수 필드와 형식에 맞춰 확인한 뒤 동기화를 다시 실행하세요.고객
node_failed레코드를 읽거나 변환하거나 쓰는 중에 동기화의 한 단계가 실패했습니다.실행을 열어 어느 단계가 왜 실패했는지 확인하고, 그것을 고친 뒤 동기화를 다시 실행하세요.고객
attestation_rule_not_active이 동기화는 일시 중지되어 있습니다.실행하려면 동기화를 다시 시작하세요.고객
attestation_publication_not_attested이 버전의 동기화는 게시되지 않았습니다.동기화를 게시하세요. 동기화의 변경 사항은 게시되기 전까지 실행되지 않습니다.고객
unclassified_exception아직 분류하지 않은 이유로 동기화가 실패했습니다.동기화를 다시 실행하세요. 같은 방식으로 실패하면 실행 ID를 저희에게 보내 주세요.Tajo

문제가 생길 수 있는 경우

  • Retry가 “This sync rule is already running.”(이 동기화 규칙은 이미 실행 중입니다)이라고 응답합니다. 동기화의 실행 중 하나라도 Queued 또는 Running으로 표시되는 동안에는, 워커가 멈춘 실행을 포함해, 고객이 시작한 재시도나 테스트 실행이 거부됩니다. Tajo가 일정에 따라 실행하는 동기화에서는 그 실행이 시작한 지 한 시간이 넘으면 닫히고 대체됩니다. 그 밖의 동기화라면 실행 ID를 저희에게 보내 주세요.
  • 동기화가 7일 넘게 실패했습니다. 7일이 지나면 원장은 완료된 쓰기를 잊습니다. 그 뒤에 재생된 배치는 레코드를 다시 기록할 수 있으므로, 대상 시스템에 중복 연락처가 없는지 확인하세요.
  • 한 동기화는 작동하는데 다른 동기화는 조용합니다. 매시간 점검은 동기화마다가 아니라 워크스페이스를 봅니다. 정상인 동기화 하나가 같은 워크스페이스의 조용한 동기화를 가리므로, 동기화마다 Run history를 확인하세요.
  • 다른 한도를 원합니다. 5회 실패 후 일시 중지와 24시간 점검은 동기화별이 아니라 Tajo 배포 전체에 설정됩니다.

관련 문서

이 페이지의 Markdown: recover-a-stuck-or-failed-sync.md

Markdown 불러오는 중…
Claude에서 열기 ChatGPT에서 열기