先行利用を申し込む

お名前とメールアドレスを入力してください。Tajoへのアクセス申請を確認するためのリンクをメールでお送りします。

初級 6分

止まった同期や失敗した同期を復旧する

ワーカーが停止したときや同期の実行が失敗したときに Tajo が自動で行うこと、同期のページに表示される内容、そしてお客さまが対応すべき場面(リトライ、再接続、マッピングの修正、再公開)を説明します。

同期の実行は、ワーカーの再起動、相手側システムの停止、レコードの拒否によって途中で止まることがあります。ワーカーの停止や一時的な障害の後は、Tajo が自動で同期を再開します。直近7日間に書き込んだレコードは再送しません。このページでは、Tajo が行うこと、同期のページに表示される内容、そしてお客さまの対応が必要な数少ないケースを説明します。

クイックチェック Connections の Syncs and mappings から同期を開き、Run history の最新の実行を確認します。失敗した実行には、何が起きたかと次に何をすべきかが表示されます。

Tajo が自動で行うこと

カーソル。 実行は、同期に保存されたカーソルから、ソースをバッチ単位で読みます。カーソルがバッチの最後に進むのは、そのバッチのすべてのレコードが書き込まれた場合だけです。実行が失敗した場合は、問題なく到達した最後の位置が保持されます。次の実行はそこから始まるので、中断されたバッチは飛ばされずにもう一度読まれます。

配信台帳。 レコードは書き込まれる前に配信キーを受け取ります。キーは同期、ソース、ページのカーソル、ページ内のレコードの位置、レコード自体のハッシュなので、個人データは含まれません。送信先を呼び出す前に、キーが確保されます。書き込みが成功すると、キーは完了済みとしてマークされ、7日間保持されます。キーはどの実行が問い合わせたかに左右されないため、リトライでも後の定期実行でも、同じレコードからは同じキーが導かれます。この7日間は保存された結果が使われ、送信先は再び呼び出されません。だから、再生されたバッチが二重に書き込まれることはありません。

一度に1つの実行。 各同期には1つのリースがあり、進行中の実行がその全期間にわたって保持します。リースには専用のトークンがあり、寿命は15分で、実行が動いている間は5分ごとに更新されます。リースを失った実行は、二重書き込みを避けるため、次の書き込みやチェックポイントの前に停止します。ワーカーが停止すると、そのリースは更新されなくなり、15分以内に切れます。

自動リトライ。 キューに入った実行が失敗すると、最大5回まで試行されます。Tajo は2回目の試行の前に60秒待ち、その後は120秒、240秒、480秒待ちます。お客さまが自分で開始したリトライやテスト実行は1回だけ実行されます。すでに進行中の実行と衝突した実行はリトライされません。公開済みのバージョンや接続がもう有効でない実行も同様です。

止まった実行。 Tajo がスケジュールで実行する同期では、開始から1時間以上たち、リースをもう保持していない実行は閉じられ、新しい実行がキューに入ります。閉じられた実行には「The run stopped reporting progress and was closed.」(実行が進捗の報告を停止したため、閉じられました)と表示されます。つまり、停止した実行のリースは最大15分で切れ、スケジュールで動く同期の止まった実行は1時間後に置き換えられます。どの同期がスケジュールで実行されるかは、データ同期を理解するに記載しています。

失敗が続いたときの一時停止。 同期を最後に変更して以降、終了した直近5回の実行がすべて失敗した場合、Tajo は同期を一時停止します。同期のページには「Paused automatically by the failure circuit breaker」と最後のエラーが表示されます。1回でも実行が成功すると、カウントはリセットされます。一時停止した同期が自動で再開することはありません。お客さまが原因を修正し、再び公開するまで停止したままです。

1時間ごとのチェック。 Tajo は毎時13分に、有効な同期があり、直近24時間に成功した実行がないワークスペースについて、自社のチームにアラートを送ります。実行が1件も記録されていないワークスペースも含まれます。アラートは1回だけ送られ、実行が成功した後でなければ再び送られません。最も古い有効な同期が有効化または変更されてから24時間未満のワークスペースは、まだチェックされません。このアラートが届くのは Tajo で、お客さまには届かず、同期にも変更を加えません。

表示される内容

Syncs and mappings から同期を開きます。Run history には、各実行について、読み取ったレコード数に対する書き込んだレコード数、失敗数、所要時間、開始時刻が並びます。ステータスは Queued、Running、Succeeded、Partial(一部のレコードが失敗)、Failed のいずれかです。

  • 実行中で2分間進捗を報告していない実行には「Waiting for a fresh progress update」(新しい進捗の更新を待っています)と表示されます。
  • 失敗した実行には、何が起きたかの一文、次に何をすべきかの一文、失敗の名前、実行 ID が表示されます。
  • Syncs ページの View DLQ には、すべての同期の失敗した実行と一部失敗した実行が、それぞれ Retry ボタン付きで並びます。

対応方法

  1. 最新の失敗した実行を読みます。 その「次に何をすべきか」の行が次の手順です。よく出会う失敗は下の表にまとめています。
  2. 「Nothing」と表示されていれば、待ちます。 次の定期実行で自動的に復旧します。
  3. 同期をもう一度実行するよう表示されていれば、 View DLQ で失敗した実行の Retry を押します。リトライは保存されたカーソルから始まるので、すでに書き込まれたバッチは再び書き込まれません。リトライが成功すると、失敗した実行は一覧から消えます。
  4. 同期が一時停止している場合は、 バナーに示された原因を修正してから、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相手側システムが利用できないか、時間内に応答しませんでした。何もしなくて大丈夫です。次の定期実行を待ちます。1日にわたって同じように失敗する場合は、実行 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 と表示されている間は、お客さまが開始するリトライやテスト実行は拒否されます。ワーカーが停止した実行も含まれます。Tajo がスケジュールで実行する同期では、その実行は開始から1時間を超えた時点で閉じられ、置き換えられます。それ以外の同期では、実行 ID を私たちに送ってください。
  • 同期が7日を超えて失敗している。 7日たつと、台帳は完了した書き込みを忘れます。それ以降に再生されたバッチはレコードを再び書き込むことがあるので、送信先で重複連絡先がないか確認してください。
  • ある同期は動いているのに、別の同期が沈黙している。 1時間ごとのチェックが見ているのは同期ごとではなく、ワークスペースです。健全な同期が1つあると、同じワークスペースで沈黙している同期が隠れてしまいます。各同期の Run history を確認してください。
  • 別の上限にしたい。 5回の失敗での一時停止と24時間のチェックは、同期ごとではなく、Tajo のデプロイ全体で設定されています。

関連記事

このページのMarkdown: recover-a-stuck-or-failed-sync.md

Markdownを読み込み中…
Claudeで開く ChatGPTで開く