Solicite acesso antecipado

Indique o seu nome e endereço de e-mail. Enviaremos um link para confirmar o seu pedido de acesso ao Tajo.

Iniciante 6 min

Recuperar uma sincronização travada ou com falha

O que o Tajo faz sozinho quando um worker para ou uma execução de sincronização falha, o que a página da sincronização mostra e quando você precisa agir: tentar de novo, reconectar, corrigir o mapeamento ou publicar de novo.

Uma execução de sincronização pode parar no meio porque um worker reinicia, o outro sistema está fora do ar ou um registro é recusado. Depois de um worker parado ou de uma indisponibilidade passageira, o Tajo retoma a sincronização sozinho. Ele não reenvia registros que escreveu nos últimos sete dias. Esta página explica o que ele faz, o que você vê na página da sincronização e os poucos casos em que você precisa agir.

Verificação rápida Abra a sincronização em Syncs and mappings, em Connections, e leia a execução mais recente em Run history. Uma execução com falha diz o que aconteceu e o que fazer em seguida.

O que o Tajo faz sozinho

O cursor. Uma execução lê a origem em lotes, a partir do cursor salvo da sincronização. O cursor só avança no fim de um lote quando todos os registros desse lote chegaram. Se a execução falha, fica guardada a última posição que ela alcançou sem erros. A execução seguinte começa ali, então um lote interrompido é lido de novo em vez de ser pulado.

O livro de registro de entregas. Antes de um registro ser escrito, ele recebe uma chave de entrega. A chave é um hash da sincronização, da origem, do cursor da página, da posição do registro na página e do próprio registro, então ela não contém dados pessoais. Antes de o destino ser chamado, a chave é reservada. Quando a escrita tem sucesso, a chave é marcada como concluída e guardada por sete dias. A chave não depende de qual execução pergunta, então uma nova tentativa ou uma execução agendada posterior deriva a mesma chave para o mesmo registro. Dentro desses sete dias, o resultado armazenado é usado e o destino não é chamado de novo. É por isso que um lote repetido não chega duas vezes.

Uma execução por vez. Cada sincronização tem uma concessão temporária, mantida pela execução em andamento durante toda a sua vida. A concessão tem um token próprio e uma validade de 15 minutos, renovada a cada 5 minutos enquanto a execução trabalha. Uma execução que perde a concessão para antes da próxima escrita ou do próximo checkpoint, para evitar escrever duas vezes. Quando um worker para, a concessão dele deixa de ser renovada e expira em até 15 minutos.

Novas tentativas automáticas. Uma execução enfileirada que falha recebe até cinco tentativas. O Tajo espera 60 segundos antes da segunda tentativa, depois 120, 240 e 480 segundos. Uma nova tentativa ou uma execução de teste que você mesmo inicia roda uma única vez. Uma execução que colidiu com outra já em andamento não é tentada de novo, nem uma execução cuja versão publicada ou cujas conexões deixaram de ser válidas.

Execuções travadas. Numa sincronização que o Tajo executa de forma agendada, uma execução é encerrada e uma nova é enfileirada quando ela começou há mais de uma hora e já não detém a concessão. A execução encerrada mostra “The run stopped reporting progress and was closed.” (a execução parou de reportar progresso e foi encerrada). Assim, a concessão de uma execução parada dura no máximo 15 minutos, e a execução travada de uma sincronização agendada é substituída depois de uma hora. Entendendo a sincronização de dados lista quais sincronizações rodam de forma agendada.

Pausa após falhas repetidas. Se as últimas cinco execuções concluídas desde a última alteração da sincronização falharam, o Tajo pausa a sincronização. A página dela mostra “Paused automatically by the failure circuit breaker” (pausada automaticamente pelo disjuntor de falhas) com o último erro. Uma única execução bem-sucedida zera a contagem. Nada reinicia sozinho uma sincronização pausada: ela continua pausada até você corrigir a causa e publicá-la de novo.

A verificação de hora em hora. A cada hora, aos 13 minutos, o Tajo alerta a própria equipe sobre qualquer espaço de trabalho com uma sincronização ativa e nenhuma execução bem-sucedida nas últimas 24 horas. Isso inclui um espaço de trabalho em que nenhuma execução foi registrada. O alerta dispara uma vez e só dispara de novo depois que uma execução tiver sucesso. Um espaço de trabalho cuja sincronização ativa mais antiga foi ativada ou alterada há menos de 24 horas ainda não é verificado. Esse alerta chega ao Tajo, não a você, e não altera a sua sincronização.

O que você vê

Abra a sincronização em Syncs and mappings. Run history lista cada execução com os registros escritos sobre os registros lidos, o número de falhas, a duração e o horário de início. O status é Queued, Running, Succeeded, Partial (alguns registros falharam) ou Failed.

  • Uma execução em andamento que não reporta progresso há 2 minutos mostra “Waiting for a fresh progress update” (aguardando uma nova atualização de progresso).
  • Uma execução com falha mostra uma frase sobre o que aconteceu, uma sobre o que fazer em seguida, o nome da falha e o id da execução.
  • View DLQ, na página Syncs, lista as execuções com falha e parciais de todas as sincronizações, cada uma com um botão Retry.

O que fazer

  1. Leia a execução com falha mais recente. A linha sobre o que fazer é o próximo passo. A tabela abaixo lista as falhas que você tem mais chance de encontrar.
  2. Se ela disser “Nothing” (nada), espere. A próxima execução agendada se recupera sozinha.
  3. Se ela pedir para executar a sincronização de novo, clique em Retry na execução com falha em View DLQ. A nova tentativa começa no cursor salvo, então os lotes já escritos não são escritos de novo. Uma nova tentativa bem-sucedida tira a execução com falha da lista.
  4. Se a sincronização foi pausada, corrija a causa indicada no aviso e publique a sincronização de novo com Publish sync ou Request publish approval.
  5. Se a mesma falha voltar, envie para nós o id da execução que aparece abaixo da execução com falha.

Cada nome de falha corresponde a uma frase sobre o que aconteceu, uma sobre o que fazer em seguida e a quem cabe a correção: a você ou ao Tajo.

Nome da falhaO que aconteceuO que fazerQuem corrige
lease_conflictOutra execução desta sincronização já estava em andamento.Nada. A execução em andamento vai terminar; a próxima execução agendada começa normalmente.Tajo
lease_lostA execução perdeu sua vaga no meio do caminho e parou para evitar escrever duas vezes.Execute a sincronização de novo.Tajo
lease_unavailableA sincronização não conseguiu reservar sua vaga de execução.Execute a sincronização de novo. Se falhar da mesma forma, envie para nós o id da execução.Tajo
stale_job_sweptA execução parou de reportar progresso e foi encerrada.Execute a sincronização de novo.Tajo
provider_rate_limitedO outro sistema pediu para diminuirmos o ritmo.Nada. Espere a próxima execução agendada.Tajo
provider_unavailableO outro sistema estava indisponível ou não respondeu a tempo.Nada. Espere a próxima execução agendada. Se falhar da mesma forma durante um dia, envie para nós o id da execução.Tajo
connection_missingUma ferramenta que a sincronização usa não está conectada neste espaço de trabalho; a execução indica qual.Conecte-a e execute a sincronização de novo.Você
connection_unauthorizedO outro sistema recusou o nosso acesso.Reconecte a conexão para que ela receba uma nova autorização e execute a sincronização de novo.Você
destination_rejectedO destino rejeitou todos os registros desta execução.Confira o mapeamento de campos com os campos obrigatórios e os formatos do destino e execute a sincronização de novo.Você
node_failedUma etapa da sincronização falhou ao ler, transformar ou escrever registros.Abra a execução para ver qual etapa falhou e por quê, corrija isso e execute a sincronização de novo.Você
attestation_rule_not_activeEsta sincronização está pausada.Retome a sincronização para executá-la.Você
attestation_publication_not_attestedEsta versão da sincronização não foi publicada.Publique a sincronização. As alterações numa sincronização só rodam depois de publicadas.Você
unclassified_exceptionA sincronização falhou por um motivo que ainda não classificamos.Execute a sincronização de novo. Se falhar da mesma forma, envie para nós o id da execução.Tajo

O que pode dar errado

  • Retry responde “This sync rule is already running.” (esta regra de sincronização já está em execução). Uma nova tentativa ou execução de teste que você inicia é recusada enquanto qualquer execução da sincronização aparece como Queued ou Running, inclusive uma execução cujo worker parou. Numa sincronização que o Tajo executa de forma agendada, essa execução é encerrada e substituída quando começou há mais de uma hora. Para qualquer outra sincronização, envie para nós o id da execução.
  • Uma sincronização falhou por mais de sete dias. Depois de sete dias, o livro de registro esquece uma escrita concluída. Um lote repetido depois disso pode escrever registros de novo, então verifique se há contatos duplicados no destino.
  • Uma sincronização está em silêncio enquanto outra funciona. A verificação de hora em hora vigia o espaço de trabalho, não cada sincronização. Uma sincronização saudável esconde uma silenciosa no mesmo espaço de trabalho, então leia o Run history de cada sincronização.
  • Você quer limites diferentes. A pausa após cinco falhas e a verificação de 24 horas valem para toda a implantação do Tajo, não por sincronização.

Artigos relacionados

Esta página em Markdown: recover-a-stuck-or-failed-sync.md

Carregando o Markdown…
Abrir no Claude Abrir no ChatGPT