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
- 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.
- Se ela disser “Nothing” (nada), espere. A próxima execução agendada se recupera sozinha.
- 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.
- 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.
- 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 falha | O que aconteceu | O que fazer | Quem corrige |
|---|---|---|---|
lease_conflict | Outra 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_lost | A execução perdeu sua vaga no meio do caminho e parou para evitar escrever duas vezes. | Execute a sincronização de novo. | Tajo |
lease_unavailable | A 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_swept | A execução parou de reportar progresso e foi encerrada. | Execute a sincronização de novo. | Tajo |
provider_rate_limited | O outro sistema pediu para diminuirmos o ritmo. | Nada. Espere a próxima execução agendada. | Tajo |
provider_unavailable | O 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_missing | Uma 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_unauthorized | O 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_rejected | O 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_failed | Uma 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_active | Esta sincronização está pausada. | Retome a sincronização para executá-la. | Você |
attestation_publication_not_attested | Esta 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_exception | A 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.