Vraag vroegtijdige toegang aan

Vul je voornaam en je e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

Beginner 6 min

Een vastgelopen of mislukte synchronisatie herstellen

Wat Tajo zelf doet als een worker stopt of een synchronisatierun mislukt, wat de pagina van de synchronisatie laat zien en wanneer jij iets moet doen: opnieuw proberen, opnieuw verbinden, de mapping corrigeren of opnieuw publiceren.

Een synchronisatierun kan halverwege stoppen omdat een worker herstart, het andere systeem plat ligt of een record wordt geweigerd. Na een gestopte worker of een korte storing pakt Tajo de synchronisatie zelf weer op. Records die het de afgelopen zeven dagen heeft geschreven, stuurt het niet opnieuw. Deze pagina legt uit wat Tajo doet, wat je op de pagina van de synchronisatie ziet en in welke paar gevallen je zelf iets moet doen.

Snelle controle Open de synchronisatie via Syncs and mappings onder Connections en lees de nieuwste run in Run history. Een mislukte run zegt wat er gebeurde en wat je daarna moet doen.

Wat Tajo zelf doet

De cursor. Een run leest zijn bron in batches, vanaf de opgeslagen cursor van de synchronisatie. De cursor schuift aan het einde van een batch alleen op als elk record in die batch is aangekomen. Mislukt de run, dan blijft de laatste positie bewaard die hij zonder fouten bereikte. De volgende run begint daar, dus een onderbroken batch wordt opnieuw gelezen in plaats van overgeslagen.

De leveringsledger. Voordat een record wordt geschreven, krijgt het een leveringssleutel. De sleutel is een hash van de synchronisatie, de bron, de paginacursor, de positie van het record op de pagina en het record zelf, dus hij bevat geen persoonsgegevens. Voordat de bestemming wordt aangeroepen, wordt de sleutel geclaimd. Slaagt de schrijfactie, dan wordt de sleutel als voltooid gemarkeerd en zeven dagen bewaard. De sleutel hangt niet af van de run die erom vraagt, dus een nieuwe poging of een latere geplande run leidt voor hetzelfde record dezelfde sleutel af. Binnen die zeven dagen wordt het opgeslagen resultaat gebruikt en wordt de bestemming niet opnieuw aangeroepen. Daarom komt een herhaalde batch niet twee keer aan.

Eén run tegelijk. Elke synchronisatie heeft één lease, die de lopende run zijn hele levensduur vasthoudt. De lease heeft een eigen token en een levensduur van 15 minuten, en wordt elke 5 minuten verlengd zolang de run werkt. Een run die zijn lease verliest, stopt voor zijn volgende schrijfactie of checkpoint, om niet twee keer te schrijven. Als een worker stopt, wordt zijn lease niet meer verlengd en verloopt die binnen 15 minuten.

Automatische nieuwe pogingen. Een run in de wachtrij die mislukt, krijgt tot vijf pogingen. Tajo wacht 60 seconden voor de tweede poging, daarna 120, 240 en 480 seconden. Een nieuwe poging of testrun die je zelf start, draait één keer. Een run die botste met een run die al bezig was, wordt niet opnieuw geprobeerd, en een run waarvan de gepubliceerde versie of de verbindingen niet meer geldig zijn ook niet.

Vastgelopen runs. Bij een synchronisatie die Tajo volgens een schema uitvoert, wordt een run gesloten en een nieuwe in de wachtrij gezet zodra hij meer dan een uur geleden is gestart en zijn lease niet meer heeft. De gesloten run toont “The run stopped reporting progress and was closed.” (de run meldde geen voortgang meer en is gesloten). De lease van een gestopte run duurt dus hoogstens 15 minuten, en de vastgelopen run van een geplande synchronisatie wordt na een uur vervangen. Datasynchronisatie begrijpen laat zien welke synchronisaties volgens een schema draaien.

Pauze na herhaalde fouten. Als de laatste vijf afgeronde runs sinds de laatste wijziging van de synchronisatie allemaal zijn mislukt, pauzeert Tajo de synchronisatie. De pagina toont dan “Paused automatically by the failure circuit breaker” met de laatste fout. Eén geslaagde run zet de telling terug op nul. Niets start een gepauzeerde synchronisatie vanzelf weer: hij blijft gepauzeerd tot jij de oorzaak oplost en hem opnieuw publiceert.

De controle per uur. Elk uur, om 13 minuten over, waarschuwt Tajo zijn eigen team over elke workspace met een actieve synchronisatie en geen geslaagde run in de afgelopen 24 uur. Daar hoort ook een workspace bij waar helemaal geen run is vastgelegd. De waarschuwing gaat één keer af, en pas weer nadat een run is geslaagd. Een workspace waarvan de oudste actieve synchronisatie minder dan 24 uur geleden is ingeschakeld of gewijzigd, wordt nog niet gecontroleerd. Deze waarschuwing gaat naar Tajo, niet naar jou, en verandert niets aan je synchronisatie.

Wat je ziet

Open de synchronisatie via Syncs and mappings. Run history toont elke run met het aantal geschreven records van het aantal gelezen records, het aantal fouten, de duur en het starttijdstip. De status is Queued, Running, Succeeded, Partial (sommige records mislukten) of Failed.

  • Een lopende run die 2 minuten geen voortgang heeft gemeld, toont “Waiting for a fresh progress update” (wachten op een nieuwe voortgangsmelding).
  • Een mislukte run toont één zin over wat er gebeurde, één over wat je daarna moet doen, de naam van de fout en de run-id.
  • View DLQ op de pagina Syncs toont mislukte en gedeeltelijke runs van alle synchronisaties, elk met een knop Retry.

Wat je doet

  1. Lees de nieuwste mislukte run. De regel over wat je moet doen, is de volgende stap. De tabel hieronder toont de fouten die je het vaakst tegenkomt.
  2. Staat er “Nothing”, wacht dan. De volgende geplande run herstelt zich vanzelf.
  3. Staat er dat je de synchronisatie opnieuw moet uitvoeren, druk dan op Retry bij de mislukte run onder View DLQ. De nieuwe poging start vanaf de opgeslagen cursor, dus batches die al zijn geschreven, worden niet opnieuw geschreven. Een geslaagde nieuwe poging haalt de mislukte run van de lijst.
  4. Is de synchronisatie gepauzeerd, los dan de oorzaak op die de banner noemt en publiceer de synchronisatie opnieuw met Publish sync of Request publish approval.
  5. Komt dezelfde fout terug, stuur ons dan de run-id die onder de mislukte run staat.

Elke foutnaam verwijst naar één zin over wat er gebeurde, één over wat je daarna moet doen, en wie het oplost: jij of Tajo.

FoutnaamWat er gebeurdeWat je doetWie lost het op
lease_conflictEr liep al een andere run van deze synchronisatie.Niets. De lopende run maakt zijn werk af; de volgende geplande run start normaal.Tajo
lease_lostDe run verloor halverwege zijn plek en stopte om niet twee keer te schrijven.Voer de synchronisatie opnieuw uit.Tajo
lease_unavailableDe synchronisatie kon geen runplek reserveren.Voer de synchronisatie opnieuw uit. Mislukt hij op dezelfde manier, stuur ons dan de run-id.Tajo
stale_job_sweptDe run meldde geen voortgang meer en is gesloten.Voer de synchronisatie opnieuw uit.Tajo
provider_rate_limitedHet andere systeem vroeg ons het rustiger aan te doen.Niets. Wacht op de volgende geplande run.Tajo
provider_unavailableHet andere systeem was niet beschikbaar of antwoordde niet op tijd.Niets. Wacht op de volgende geplande run. Mislukt hij een dag lang op dezelfde manier, stuur ons dan de run-id.Tajo
connection_missingEen tool die de synchronisatie gebruikt, is niet verbonden in deze workspace; de run noemt welke.Verbind die tool en voer de synchronisatie daarna opnieuw uit.Jij
connection_unauthorizedHet andere systeem weigerde onze toegang.Verbind opnieuw zodat de verbinding een nieuwe autorisatie krijgt, en voer de synchronisatie daarna opnieuw uit.Jij
destination_rejectedDe bestemming weigerde elk record in deze run.Controleer de veldmapping tegen de verplichte velden en formaten van de bestemming en voer de synchronisatie daarna opnieuw uit.Jij
node_failedEen stap van de synchronisatie mislukte bij het lezen, omzetten of schrijven van records.Open de run om te zien welke stap mislukte en waarom, los dat op en voer de synchronisatie daarna opnieuw uit.Jij
attestation_rule_not_activeDeze synchronisatie is gepauzeerd.Hervat de synchronisatie om hem uit te voeren.Jij
attestation_publication_not_attestedDeze versie van de synchronisatie is niet gepubliceerd.Publiceer de synchronisatie. Wijzigingen aan een synchronisatie draaien pas als ze zijn gepubliceerd.Jij
unclassified_exceptionDe synchronisatie mislukte om een reden die we nog niet hebben ingedeeld.Voer de synchronisatie opnieuw uit. Mislukt hij op dezelfde manier, stuur ons dan de run-id.Tajo

Wat er mis kan gaan

  • Retry antwoordt “This sync rule is already running.” (deze syncregel draait al). Een nieuwe poging of testrun die je zelf start, wordt geweigerd zolang een run van de synchronisatie als Queued of Running staat, ook een run waarvan de worker is gestopt. Bij een synchronisatie die Tajo volgens een schema uitvoert, wordt die run gesloten en vervangen zodra hij meer dan een uur geleden is gestart. Bij elke andere synchronisatie stuur je ons de run-id.
  • Een synchronisatie mislukt al langer dan zeven dagen. Na zeven dagen vergeet de ledger een voltooide schrijfactie. Een batch die daarna wordt herhaald, kan records opnieuw schrijven. Controleer de bestemming dus op dubbele contacten.
  • De ene synchronisatie is stil terwijl een andere werkt. De controle per uur bewaakt de workspace, niet elke synchronisatie apart. Een gezonde synchronisatie verbergt een stille in dezelfde workspace, dus lees de Run history van elke synchronisatie.
  • Je wilt andere grenzen. De pauze na vijf fouten en de controle op 24 uur gelden voor de hele Tajo-installatie, niet per synchronisatie.

Gerelateerde artikelen

Deze pagina als Markdown: recover-a-stuck-or-failed-sync.md

Markdown laden…
Openen in Claude Openen in ChatGPT