東証の鶴島琢夫社長
東証の鶴島琢夫社長
[画像のクリックで拡大表示]

 東京証券取引所の株式売買システムの障害により、11月1日午前中の取引が全面停止した件で、東証は11月7日に記者会見を開き、原因を発表した。障害を引き起こした主因は、売買システムの開発・保守を担当する富士通が10月13日に作成した、作業指示書に記載漏れがあったことである。

 この作業指示書は、5月に売買システムを更新した際に混入したバグを修正し、修正後のプログラムを売買システムに再登録するためのもの。富士通が作成し、運用担当ベンダーである東証コンピュータシステム(TCS)に送付した。

 障害発生当初は、10月8日から10日の3連休に実施したシステム増強作業に原因がありそうだと発表していた。だが、それは直接関係なかった。むしろ連休に実施した増強作業により、取引所に参加している証券会社と、その端末のコードを登録した「参加者データ・ファイル」を読み込むプログラム中のバグを発見した。

 売買システムのプログラムはCOBOLで記述されている。COBOLでは、複数のサブモジュールをつなげて、一つのプログラムを構成する。10月13日の作業指示書には、サブモジュール間の呼び出し関係を指定し直す手順が抜けていた。このため、プログラムの中の古い呼び出し関係が、書き換えられることなく残った。13日以降、システムは古い呼び出し関係のまま動き続けていたわけだ。

 これが毎月末に実施する「コンデンス」処理で顕在化した。コンデンスは、ファイルの読み書きを繰り返して使用しなくなったディスク領域を解放して再利用できるようにするための処理。パソコンのデフラグに似た処理である。

 10月31日のコンデンス処理では、13日に再登録したサブモジュール間の呼び出し関係をシステムが自動検証した結果、これらを別個のモジュールと判断し呼び出し関係を切断した。翌11月1日朝、参加者データ・ファイルを読み込むプログラムが起動したものの、正しいサブモジュールを呼び出せず、読み込みに失敗したため、売買システムは起動しなかった。

 富士通が作成した作業指示書の記載漏れが障害原因だったことに対して、東証の鶴島琢夫社長(写真)は、「(富士通への損害賠償は)東証との契約内容や、さらに詳しい事実関係などを調べてから検討する」と述べた。

 一方で鶴島社長は、東証自身の反省点にも言及。「安定した証券取引市場を提供する立場にありながら、誠に申し訳ない」と謝罪した。「ベンダーに対して、システム障害を未然に防止する体制の整備を厳しく求めたり、またベンダーが作成する資料や実施した作業の不備をチェックする体制など、自分たちの体制を厳しく検証する必要がある」(同)。東証では11月10日に臨時取締役会を開き、社長以下、経営陣の処分を決定する。