Ζητήστε πρώιμη πρόσβαση

Συμπληρώστε το μικρό σας όνομα και τη διεύθυνση email σας. Θα σας στείλουμε σύνδεσμο για να επιβεβαιώσετε το αίτημα πρόσβασης στο Tajo.

Αρχάριος 6 λεπτά

Επαναφορά ενός συγχρονισμού που κόλλησε ή απέτυχε

Τι κάνει το Tajo μόνο του όταν ένας worker σταματά ή μια εκτέλεση συγχρονισμού αποτυγχάνει, τι δείχνει η σελίδα του συγχρονισμού και πότε χρειάζεται να ενεργήσετε: επανάληψη, επανασύνδεση, διόρθωση της αντιστοίχισης ή νέα δημοσίευση.

Μια εκτέλεση συγχρονισμού μπορεί να σταματήσει στη μέση επειδή ένας worker επανεκκινείται, το άλλο σύστημα δεν λειτουργεί ή μια εγγραφή απορρίπτεται. Μετά από έναν worker που σταμάτησε ή μια προσωρινή διακοπή, το Tajo συνεχίζει τον συγχρονισμό μόνο του. Δεν ξαναστέλνει εγγραφές που έγραψε τις τελευταίες επτά ημέρες. Αυτή η σελίδα εξηγεί τι κάνει, τι βλέπετε στη σελίδα του συγχρονισμού και τις λίγες περιπτώσεις όπου πρέπει να ενεργήσετε εσείς.

Γρήγορος έλεγχος Ανοίξτε τον συγχρονισμό από το Syncs and mappings στην ενότητα Connections και διαβάστε την πιο πρόσφατη εκτέλεση στο Run history. Μια εκτέλεση που απέτυχε λέει τι συνέβη και τι να κάνετε στη συνέχεια.

Τι κάνει το Tajo μόνο του

Ο cursor. Μια εκτέλεση διαβάζει την πηγή της σε παρτίδες, ξεκινώντας από τον αποθηκευμένο cursor του συγχρονισμού. Ο cursor προχωρά στο τέλος μιας παρτίδας μόνο όταν έχει φτάσει κάθε εγγραφή της. Αν η εκτέλεση αποτύχει, διατηρείται η τελευταία θέση στην οποία έφτασε χωρίς σφάλμα. Η επόμενη εκτέλεση ξεκινά από εκεί, οπότε μια διακοπείσα παρτίδα διαβάζεται ξανά αντί να παραλειφθεί.

Το μητρώο παράδοσης. Πριν γραφτεί μια εγγραφή, παίρνει ένα κλειδί παράδοσης. Το κλειδί είναι ένα hash του συγχρονισμού, της πηγής, του cursor της σελίδας, της θέσης της εγγραφής στη σελίδα και της ίδιας της εγγραφής, οπότε δεν περιέχει προσωπικά δεδομένα. Πριν κληθεί ο προορισμός, το κλειδί δεσμεύεται. Όταν η εγγραφή πετύχει, το κλειδί σημειώνεται ως ολοκληρωμένο και διατηρείται για επτά ημέρες. Το κλειδί δεν εξαρτάται από την εκτέλεση που το ζητά, οπότε μια επανάληψη ή μια μεταγενέστερη προγραμματισμένη εκτέλεση παράγει το ίδιο κλειδί για την ίδια εγγραφή. Μέσα σε αυτές τις επτά ημέρες χρησιμοποιείται το αποθηκευμένο αποτέλεσμα και ο προορισμός δεν καλείται ξανά. Γι’ αυτό μια παρτίδα που επαναλαμβάνεται δεν φτάνει δύο φορές.

Μία εκτέλεση κάθε φορά. Κάθε συγχρονισμός έχει ένα lease (αποκλειστική κράτηση), που το κατέχει η εκτέλεση σε εξέλιξη για όλη τη διάρκειά της. Το lease έχει δικό του token και διάρκεια ζωής 15 λεπτών, που ανανεώνεται κάθε 5 λεπτά όσο η εκτέλεση δουλεύει. Μια εκτέλεση που χάνει το lease της σταματά πριν από την επόμενη εγγραφή ή το επόμενο σημείο ελέγχου, ώστε να μη γράψει δύο φορές. Όταν ένας worker σταματά, το lease του δεν ανανεώνεται πια και λήγει μέσα σε 15 λεπτά.

Αυτόματες επαναλήψεις. Μια εκτέλεση σε ουρά που αποτυγχάνει έχει έως πέντε προσπάθειες. Το Tajo περιμένει 60 δευτερόλεπτα πριν από τη δεύτερη προσπάθεια, μετά 120, 240 και 480 δευτερόλεπτα. Μια επανάληψη ή δοκιμαστική εκτέλεση που ξεκινάτε εσείς εκτελείται μία φορά. Μια εκτέλεση που συγκρούστηκε με άλλη εκτέλεση σε εξέλιξη δεν επαναλαμβάνεται. Ούτε μια εκτέλεση της οποίας η δημοσιευμένη έκδοση ή οι συνδέσεις δεν είναι πια έγκυρες.

Κολλημένες εκτελέσεις. Για έναν συγχρονισμό που το Tajo εκτελεί με χρονοπρογραμματισμό, μια εκτέλεση κλείνει και μπαίνει μια νέα στην ουρά μόλις έχει ξεκινήσει πριν από περισσότερο από μία ώρα και δεν κατέχει πια το lease της. Η εκτέλεση που έκλεισε δείχνει “The run stopped reporting progress and was closed.” (η εκτέλεση σταμάτησε να αναφέρει πρόοδο και έκλεισε). Άρα το lease μιας εκτέλεσης που σταμάτησε διαρκεί το πολύ 15 λεπτά, και η κολλημένη εκτέλεση ενός προγραμματισμένου συγχρονισμού αντικαθίσταται μετά από μία ώρα. Η σελίδα Κατανόηση του συγχρονισμού δεδομένων αναφέρει ποιοι συγχρονισμοί εκτελούνται με χρονοπρογραμματισμό.

Παύση μετά από επαναλαμβανόμενες αποτυχίες. Αν οι πέντε τελευταίες ολοκληρωμένες εκτελέσεις από την τελευταία αλλαγή του συγχρονισμού απέτυχαν όλες, το Tajo θέτει τον συγχρονισμό σε παύση. Η σελίδα του δείχνει “Paused automatically by the failure circuit breaker” (αυτόματη παύση από τον διακόπτη αποτυχιών) με το τελευταίο σφάλμα. Μία επιτυχημένη εκτέλεση μηδενίζει τη μέτρηση. Τίποτα δεν επανεκκινεί μόνο του έναν συγχρονισμό σε παύση: μένει σε παύση μέχρι να διορθώσετε την αιτία και να τον δημοσιεύσετε ξανά.

Ο ωριαίος έλεγχος. Κάθε ώρα, στο 13ο λεπτό, το Tajo ειδοποιεί τη δική του ομάδα για κάθε χώρο εργασίας με ενεργό συγχρονισμό και καμία επιτυχημένη εκτέλεση τις τελευταίες 24 ώρες. Αυτό περιλαμβάνει και χώρο εργασίας όπου δεν καταγράφηκε καμία εκτέλεση. Η ειδοποίηση στέλνεται μία φορά και στέλνεται ξανά μόνο αφού πετύχει μια εκτέλεση. Ένας χώρος εργασίας του οποίου ο παλαιότερος ενεργός συγχρονισμός ενεργοποιήθηκε ή άλλαξε πριν από λιγότερο από 24 ώρες δεν ελέγχεται ακόμη. Αυτή η ειδοποίηση φτάνει στο Tajo, όχι σε εσάς, και δεν αλλάζει τον συγχρονισμό σας.

Τι βλέπετε

Ανοίξτε τον συγχρονισμό από το Syncs and mappings. Το Run history δείχνει κάθε εκτέλεση με τις εγγραφές που γράφτηκαν από όσες διαβάστηκαν, τον αριθμό αποτυχιών, τη διάρκεια και πότε ξεκίνησε. Η κατάστασή της είναι Queued, Running, Succeeded, Partial (ορισμένες εγγραφές απέτυχαν) ή Failed.

  • Μια εκτέλεση σε εξέλιξη που δεν έχει αναφέρει πρόοδο για 2 λεπτά δείχνει “Waiting for a fresh progress update” (αναμονή για νέα ενημέρωση προόδου).
  • Μια εκτέλεση που απέτυχε δείχνει μία πρόταση για το τι συνέβη, μία για το τι να κάνετε στη συνέχεια, το όνομα της αποτυχίας και το id της εκτέλεσης.
  • Το View DLQ στη σελίδα Syncs δείχνει τις εκτελέσεις που απέτυχαν ή ολοκληρώθηκαν μερικώς σε όλους τους συγχρονισμούς, καθεμία με ένα κουμπί Retry.

Τι να κάνετε

  1. Διαβάστε την πιο πρόσφατη εκτέλεση που απέτυχε. Η γραμμή «τι να κάνετε» είναι το επόμενο βήμα. Ο παρακάτω πίνακας δείχνει τις αποτυχίες που είναι πιο πιθανό να συναντήσετε.
  2. Αν λέει “Nothing”, περιμένετε. Η επόμενη προγραμματισμένη εκτέλεση επανέρχεται μόνη της.
  3. Αν λέει να εκτελέσετε ξανά τον συγχρονισμό, πατήστε Retry στην εκτέλεση που απέτυχε, στο View DLQ. Η επανάληψη ξεκινά από τον αποθηκευμένο cursor, οπότε οι παρτίδες που γράφτηκαν ήδη δεν γράφονται ξανά. Μια επιτυχημένη επανάληψη αφαιρεί την εκτέλεση που απέτυχε από τη λίστα.
  4. Αν ο συγχρονισμός τέθηκε σε παύση, διορθώστε την αιτία που αναφέρει το banner και δημοσιεύστε ξανά τον συγχρονισμό με 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, ακόμη και μια εκτέλεση της οποίας ο worker σταμάτησε. Για έναν συγχρονισμό που το Tajo εκτελεί με χρονοπρογραμματισμό, αυτή η εκτέλεση κλείνει και αντικαθίσταται μόλις έχει ξεκινήσει πριν από περισσότερο από μία ώρα. Για κάθε άλλον συγχρονισμό, στείλτε μας το id της εκτέλεσης.
  • Ένας συγχρονισμός αποτυγχάνει για περισσότερες από επτά ημέρες. Μετά από επτά ημέρες το μητρώο ξεχνά μια ολοκληρωμένη εγγραφή. Μια παρτίδα που επαναλαμβάνεται μετά από αυτό μπορεί να γράψει ξανά εγγραφές, οπότε ελέγξτε τον προορισμό για διπλότυπες επαφές.
  • Ένας συγχρονισμός σιωπά ενώ ένας άλλος λειτουργεί. Ο ωριαίος έλεγχος παρακολουθεί τον χώρο εργασίας, όχι κάθε συγχρονισμό χωριστά. Ένας υγιής συγχρονισμός κρύβει έναν σιωπηλό στον ίδιο χώρο εργασίας, οπότε διαβάστε το Run history κάθε συγχρονισμού.
  • Θέλετε διαφορετικά όρια. Η παύση μετά από πέντε αποτυχίες και ο έλεγχος των 24 ωρών ορίζονται για ολόκληρη την εγκατάσταση του Tajo, όχι ανά συγχρονισμό.

Σχετικά άρθρα

Αυτή η σελίδα ως Markdown: recover-a-stuck-or-failed-sync.md

Φόρτωση Markdown…
Άνοιγμα στο Claude Άνοιγμα στο ChatGPT