全国銀行協会は12月1日、銀行間の送金を行う「全国銀行データ通信システム」(通称:全銀ネット)で10月に発生した障害について会見を行い、開発現場の認識不足が障害につながったと明らかにした。会見にはシステム構築を担当したNTTデータの佐々木裕社長らも同席した。
既報の通り、障害の直接的な原因は、銀行間手数料(内国為替制度運営費)を入力する際に参照するインデックステーブルに欠損があったこと。NTTデータは11月6日の会見で、このインデックステーブルは最初から破損していたと明らかにしている。
その後の調査で、インデックステーブルは、開発時(環境構築時)にテーブルを生成するプログラムを動かした際、共有メモリ上の作業領域を十分に確保できていなかったために破損していたことが分かった。NTTデータによると「作業領域が不足していてもテーブルは出来てしまう。不足した作業領域にも書き込み、しかし本来は他のプログラムが使用する領域のため、上書きされてしまった」という。
問題は、作業領域が不足した理由だ。今回のようにOSの変更(64bit化)を伴うようなシステムリプレースでは、事前にその差異や周囲への影響を調べる「影響調査」を行うが、その際に仕様の一部を見落とし、生成プログラムが必要とする作業領域を実際より少なく見積もっていた。
「テーブルが作業領域に収まるサイズだったため、(作業領域の)拡張は不要と判断してしまった。しかし実際には、金融機関名テーブルの他に、3つのテーブルを同時に展開する仕様だった」という。
影響調査やその後のレビュー(検証)、運用試験などで誤りが指摘されていれば、障害の発生は避けられた可能性もある。事実、4つのテーブルがまとめて展開されることは、システムの「詳細設計書」に書かれていたが、調査やレビューに参加したメンバーはそれを認識していなかった。NTTデータ内で行われた再検証でも作業領域拡張の必要性は指摘されなかった。
NTTデータの佐々木社長は「初歩的なミスというわけではないが、組織としてはしっかり見るべきこと。詳細設計書を書いた人や有識者がレビューに参加していれば、場合によっては(事前にミスを)見つけられたのではないか」と唇を噛んだ。
これらの原因を踏まえ、両者は再発防止策として、1)プログラム修正方針を詳細設計関係者も含めて判断するプロセスに変更、2)実際の取引に使うデータを用いた試験を実施する。さらに復旧対応に時間が掛かったことも踏まえ、3)障害発生時の復旧ガイドラインを策定、4)システム基盤に目配りできる「基盤人材」(ITアーキテクト)の関与を高める方針だ。
全銀ネットは、現在も“暫定措置”のまま運用している。改修用のプログラムは完成しており、現在は実際の商用データを金融機関から借りてテストを行っている。確認が終われば、分散してリリースする考え。「確定したスケジュールはない」ものの、早ければ12月中に本格稼働する見通しになっている。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR