Proses sinkronisasi bisa berhenti di tengah jalan karena worker dimulai ulang, sistem lain sedang down, atau sebuah catatan ditolak. Setelah worker berhenti atau gangguan sesaat, Tajo melanjutkan sinkronisasi dengan sendirinya. Tajo tidak mengirim ulang catatan yang sudah ditulisnya dalam tujuh hari terakhir. Halaman ini menjelaskan apa yang dilakukan Tajo, apa yang Anda lihat di halaman sinkronisasi, dan beberapa kasus saat Anda perlu bertindak.
Pemeriksaan cepat Buka sinkronisasi dari Syncs and mappings di bawah Connections, lalu baca proses terbaru di Run history. Proses yang gagal menyebutkan apa yang terjadi dan apa yang perlu dilakukan berikutnya.
Yang dilakukan Tajo sendiri
Cursor. Sebuah proses membaca sumbernya dalam batch, mulai dari cursor sinkronisasi yang tersimpan. Cursor maju di akhir batch hanya jika setiap catatan dalam batch itu sudah sampai. Jika proses gagal, posisi terakhir yang dicapainya tanpa error tetap disimpan. Proses berikutnya mulai dari sana, sehingga batch yang terputus dibaca ulang, bukan dilewati.
Buku besar pengiriman. Sebelum sebuah catatan ditulis, catatan itu mendapat kunci pengiriman. Kunci ini adalah hash dari sinkronisasi, sumber, cursor halaman, posisi catatan di halaman, dan catatan itu sendiri, sehingga tidak memuat data pribadi. Sebelum tujuan dipanggil, kunci diklaim. Saat penulisan berhasil, kunci ditandai selesai dan disimpan selama tujuh hari. Kunci tidak bergantung pada proses mana yang memintanya, sehingga percobaan ulang atau proses terjadwal berikutnya menghasilkan kunci yang sama untuk catatan yang sama. Dalam tujuh hari itu, hasil yang tersimpan dipakai dan tujuan tidak dipanggil lagi. Itulah sebabnya batch yang diputar ulang tidak masuk dua kali.
Satu proses dalam satu waktu. Setiap sinkronisasi memiliki satu lease, yang dipegang oleh proses yang sedang berjalan selama seluruh masa hidupnya. Lease memiliki token sendiri dan masa berlaku 15 menit, yang diperpanjang setiap 5 menit selama proses bekerja. Proses yang kehilangan lease-nya berhenti sebelum penulisan atau checkpoint berikutnya, agar tidak menulis dua kali. Saat worker berhenti, lease-nya tidak lagi diperpanjang dan habis dalam 15 menit.
Percobaan ulang otomatis. Proses dalam antrean yang gagal mendapat hingga lima percobaan. Tajo menunggu 60 detik sebelum percobaan kedua, lalu 120, 240, dan 480 detik. Percobaan ulang atau proses uji yang Anda mulai sendiri berjalan satu kali. Proses yang bertabrakan dengan proses lain yang sedang berjalan tidak dicoba lagi, begitu juga proses yang versi terpublikasi atau koneksinya tidak lagi valid.
Proses yang macet. Untuk sinkronisasi yang dijalankan Tajo sesuai jadwal, sebuah proses ditutup dan proses baru dimasukkan ke antrean begitu proses itu dimulai lebih dari satu jam yang lalu dan tidak lagi memegang lease-nya. Proses yang ditutup menampilkan “The run stopped reporting progress and was closed.” (proses berhenti melaporkan kemajuan dan ditutup). Jadi lease proses yang berhenti bertahan paling lama 15 menit, dan proses macet pada sinkronisasi terjadwal diganti setelah satu jam. Memahami sinkronisasi data mencantumkan sinkronisasi mana yang berjalan sesuai jadwal.
Jeda setelah kegagalan berulang. Jika lima proses terakhir yang selesai sejak sinkronisasi terakhir diubah semuanya gagal, Tajo menjeda sinkronisasi. Halamannya menampilkan “Paused automatically by the failure circuit breaker” (dijeda otomatis oleh pemutus kegagalan) beserta error terakhir. Satu proses yang berhasil mengatur ulang hitungannya. Tidak ada yang memulai lagi sinkronisasi yang dijeda secara otomatis: sinkronisasi tetap dijeda sampai Anda memperbaiki penyebabnya dan memublikasikannya ulang.
Pemeriksaan per jam. Setiap jam, pada menit ke-13, Tajo memberi peringatan kepada timnya sendiri tentang setiap ruang kerja yang memiliki sinkronisasi aktif tanpa proses yang berhasil dalam 24 jam terakhir. Ini termasuk ruang kerja yang sama sekali tidak memiliki proses tercatat. Peringatan dikirim sekali, dan baru dikirim lagi setelah ada proses yang berhasil. Ruang kerja yang sinkronisasi aktif tertuanya diaktifkan atau diubah kurang dari 24 jam yang lalu belum diperiksa. Peringatan ini sampai ke Tajo, bukan ke Anda, dan tidak mengubah sinkronisasi Anda.
Yang Anda lihat
Buka sinkronisasi dari Syncs and mappings. Run history mencantumkan setiap proses dengan jumlah catatan yang ditulis dari catatan yang dibaca, jumlah yang gagal, durasi, dan waktu mulainya. Statusnya Queued, Running, Succeeded, Partial (sebagian catatan gagal), atau Failed.
- Proses berjalan yang belum melaporkan kemajuan selama 2 menit menampilkan “Waiting for a fresh progress update” (menunggu pembaruan kemajuan terbaru).
- Proses yang gagal menampilkan satu kalimat tentang apa yang terjadi, satu kalimat tentang apa yang perlu dilakukan berikutnya, nama kegagalan, dan id proses.
- View DLQ di halaman Syncs mencantumkan proses yang gagal dan parsial dari semua sinkronisasi, masing-masing dengan tombol Retry.
Yang perlu dilakukan
- Baca proses gagal yang terbaru. Baris “apa yang perlu dilakukan” di sana adalah langkah berikutnya. Tabel di bawah mencantumkan kegagalan yang paling mungkin Anda temui.
- Jika tertulis “Nothing”, tunggu. Proses terjadwal berikutnya pulih dengan sendirinya.
- Jika diminta menjalankan sinkronisasi lagi, tekan Retry pada proses yang gagal di View DLQ. Percobaan ulang dimulai dari cursor yang tersimpan, sehingga batch yang sudah ditulis tidak ditulis lagi. Percobaan ulang yang berhasil menghapus proses yang gagal dari daftar.
- Jika sinkronisasi dijeda, perbaiki penyebab yang disebutkan banner, lalu publikasikan ulang sinkronisasi dengan Publish sync atau Request publish approval.
- Jika kegagalan yang sama muncul lagi, kirimkan kepada kami id proses yang tampil di bawah proses yang gagal.
Setiap nama kegagalan dipetakan ke satu kalimat tentang apa yang terjadi, satu kalimat tentang apa yang perlu dilakukan berikutnya, dan siapa yang memperbaikinya: Anda atau Tajo.
| Nama kegagalan | Apa yang terjadi | Apa yang perlu dilakukan | Siapa yang memperbaiki |
|---|---|---|---|
lease_conflict | Proses lain dari sinkronisasi ini sudah sedang berjalan. | Tidak ada. Proses yang sedang berjalan akan selesai; proses terjadwal berikutnya dimulai seperti biasa. | Tajo |
lease_lost | Proses kehilangan slotnya di tengah jalan dan berhenti agar tidak menulis dua kali. | Jalankan sinkronisasi lagi. | Tajo |
lease_unavailable | Sinkronisasi tidak dapat memesan slot prosesnya. | Jalankan sinkronisasi lagi. Jika gagal dengan cara yang sama, kirimkan id proses kepada kami. | Tajo |
stale_job_swept | Proses berhenti melaporkan kemajuan dan ditutup. | Jalankan sinkronisasi lagi. | Tajo |
provider_rate_limited | Sistem lain meminta kami memperlambat. | Tidak ada. Tunggu proses terjadwal berikutnya. | Tajo |
provider_unavailable | Sistem lain tidak tersedia atau tidak menjawab tepat waktu. | Tidak ada. Tunggu proses terjadwal berikutnya. Jika gagal dengan cara yang sama selama sehari, kirimkan id proses kepada kami. | Tajo |
connection_missing | Alat yang dipakai sinkronisasi tidak terhubung di ruang kerja ini; proses menyebutkan namanya. | Hubungkan alat itu, lalu jalankan sinkronisasi lagi. | Anda |
connection_unauthorized | Sistem lain menolak akses kami. | Hubungkan ulang koneksi agar mendapat otorisasi baru, lalu jalankan sinkronisasi lagi. | Anda |
destination_rejected | Tujuan menolak semua catatan dalam proses ini. | Periksa pemetaan kolom terhadap kolom wajib dan format tujuan, lalu jalankan sinkronisasi lagi. | Anda |
node_failed | Salah satu langkah sinkronisasi gagal saat membaca, mentransformasi, atau menulis catatan. | Buka proses untuk melihat langkah mana yang gagal dan alasannya, perbaiki itu, lalu jalankan sinkronisasi lagi. | Anda |
attestation_rule_not_active | Sinkronisasi ini sedang dijeda. | Lanjutkan sinkronisasi untuk menjalankannya. | Anda |
attestation_publication_not_attested | Versi sinkronisasi ini belum dipublikasikan. | Publikasikan sinkronisasi. Perubahan pada sinkronisasi tidak berjalan sampai dipublikasikan. | Anda |
unclassified_exception | Sinkronisasi gagal karena alasan yang belum kami klasifikasikan. | Jalankan sinkronisasi lagi. Jika gagal dengan cara yang sama, kirimkan id proses kepada kami. | Tajo |
Yang bisa salah
- Retry menjawab “This sync rule is already running.” (aturan sinkronisasi ini sudah berjalan). Percobaan ulang atau proses uji yang Anda mulai ditolak selama ada proses sinkronisasi yang tampil sebagai Queued atau Running, termasuk proses yang worker-nya berhenti. Untuk sinkronisasi yang dijalankan Tajo sesuai jadwal, proses itu ditutup dan diganti begitu dimulai lebih dari satu jam yang lalu. Untuk sinkronisasi lainnya, kirimkan id proses kepada kami.
- Sinkronisasi gagal lebih dari tujuh hari. Setelah tujuh hari, buku besar melupakan penulisan yang sudah selesai. Batch yang diputar ulang setelah itu bisa menulis catatan lagi, jadi periksa tujuan untuk kontak duplikat.
- Satu sinkronisasi diam sementara yang lain berjalan. Pemeriksaan per jam mengawasi ruang kerja, bukan setiap sinkronisasi. Satu sinkronisasi yang sehat menutupi sinkronisasi yang diam di ruang kerja yang sama, jadi baca Run history setiap sinkronisasi.
- Anda menginginkan batas yang berbeda. Jeda setelah lima kegagalan dan pemeriksaan 24 jam diatur untuk seluruh deployment Tajo, bukan per sinkronisasi.