ZAPAnet総合情報局 > ZAPAブログ2.0 > 楽天証券のバッチ処理突き抜けの詳細

楽天証券のバッチ処理突き抜けの詳細

2008年11月13日 雑記
いわゆる「バッチ処理の突き抜け」?で初めて知った「バッチ処理の突き抜け」。バッチ処理の突き抜けとは、バッチ処理が予定した時刻に終わらないことを意味しているようです(この業界では有名な用語?)。

楽天証券のトラブルについて、その詳細が載っていました。
システム関連のお知らせ No.2399
事態の経緯についても載っていました。

午前3:24 基幹データベースにおいてお客様の勘定履歴を作成するバッチ処理を開始
午前3:40 当該バッチ処理の異常を検知
午前8:40 米国株式、FX(外国為替証拠金取引)を除くすべての取引の受注を停止
午前9:53 お客様のログインを一時停止
午前10:35 リカバリー処理方針の目処が立ち、異常の発生したバッチ処理を再実行
午後0:38 前日夜間受注分の一括発注完了
午後0:45 逆指値注文を除くすべてのサービスを再開。(システムの不具合を解消。)
3:24にバッチ処理を開始し、16分後の3:40にはバッチ処理の異常を検知しています。異常を検知してもバッチ処理は続行したようで、5:30にサービス再開時間の遅れが発表されていました。
サービス再開時間変更のお知らせ (11.11 05:30)
本日、夜間バッチ処理に時間を要しているため、
下記のサービス再開時間が遅れる可能性がございます。
異常検知もサーバー管理者への連絡もうまくいっているように見えます。

その後もバッチ処理を続けたようですが、
【続報】サービス再開時間変更のお知らせ(2) (11.11 07:40)
【続報】サービス再開時間の変更について(3) (11.11 08:26)
【続報】新規受注停止のお知らせ (11.11 08:40)
【続報】サービス再開遅延にともなうお知らせ (11.11 09:41)
【続報】サービス再開遅延にともなう、ログインの一時停止のおしらせ (11.11 09:50)
異常のままバッチ処理を続けることは、ついに断念したようです。

10:35に「リカバリー処理方針の目処が立ち、異常の発生したバッチ処理を再実行」したことにより、10:40にサービス再開のお知らせが発表されました。
【順次復旧】本日のサービス再開について (11.11 10:40)
サービス再開遅延にともない、注文の受注を一部停止しておりましたが、復旧のメドが立ちましたので、お知らせいたします。
リカバリーした後にバッチ処理を再実行し、0:45にはシステムの不具合が解消しました。
【復旧】本日のサービスを再開いたしました。 (11.11 12:45)

一連の流れをみていると、バッチ処理開始16分後の3:40には異常を検知できているので、この時点で適切な対処を取れていれば問題なく再開できていたような気がします。問題は、異常を検知していたのに、そのままバッチ処理を続行したことではないでしょうか。開始16分後なら、一度バッチ処理を止めてから、原因究明をしてバッチ処理をやり直した方が良かったのではないかと思います。おそらく、バッチ処理の異常を検知したときの対策マニュアルがきちんと作られていなかったのでしょう。システムの不具合を0にするのは難しいので、不具合が発生したときの復旧方法の対策をしっかりと取っておく必要がありますね。