engineer diary

エンジニアの日々の感想です

リカバリ出来ないバッチはバッチでない

tech.mercari.com


以下感想。

バッチ処理において、「リカバリ可能か」どうかはとても大事なことです。
"処理が完了した次のデータから処理が再開できる"
これを意識して作られているバッチが少ないです。(私の会社では...)

例えば、
A処理
B処理
C処理
と順番に行うバッチ処理があったとして、
①A~C処理全て行うバッチ、
②A処理を行うバッチ、
 B処理を行うバッチ、
 C処理を行うバッチ、
 計3バッチを順番に実行するバッチ

①と②ではリカバリの容易さが大きく異なります。
ちなみに私の会社では①が多いです。
異常終了した時点でROLLBACKされていればまだよいのですが、途中でCOMMITされている場合もあります。
①の場合、
・異常終了した場合、どの処理で異常終了したかまず調査
・再実行するにもA処理から流れてしまう
・C処理が原因の場合、A~B処理を再実行して問題が無いのか、影響調査する必要がある
②の場合、
・異常終了した場合、どの処理で異常終了したか分かる
・異常終了した処理から再実行が可能
・再実行するジョブのみ影響調査をすればよい

②のつくりであれば、容易にリカバリが可能です。

まぁ一番の問題は、バッチ処理を当初製造した人が辞めちゃってることなんですが...泣
全バッチのリカバリ方法をまとめたいのですが、そんな時間はない!!


これからバッチを作る方は、「リカバリの容易さ」に気を付けてくださいね。
バッチのリカバリに苦しむ人が減りますように。


Windows PowerShell超入門[4.0対応]

Windows PowerShell超入門[4.0対応]