PR

 システムダウンは原因によって大きく4種類に分けられる。パラメータ設定の変更漏れといった「うっかりミス」、ハード故障などの「不慮の事故」、大量アクセスなどでシステムがリソース不足に陥る「性能不足」、アプリケーションソフトやOS・ミドルウエアのバグといった「ソフトウエアの不具合」だ()。

表●システムダウンの4分類
ダウンの分類具体例
うっかりミス(操作・設定ミス)システム環境の設定・変更ミス、運用・操作の誤り
不慮の事故ハード故障、電源断
性能不足ハードウエアやソフトウエア、ネットワークのリソース不足
ソフトウエアの不具合アプリケーションソフト、OSやミドルウエアのバグ

 2009年に注意したいシステムダウンを取り上げる本特集では、前回までにうっかりミスと不慮の事故、性能不足を紹介してきた。4回めの今回は、ソフトの不具合について取り上げる。

 ソフトの不具合によるシステムダウンは、OSやミドルウエア、アプリケーションソフトに潜むプログラムの「バグ」がきっかけになる。バグとはプログラムの記述ミスやロジックの矛盾、条件分岐の実装漏れなどによって、ソフトウエアが作成者の意図と異なる振る舞いをするときに、その原因となる部分を指す。アプリケーションの不具合とOS・ミドルウエアの不具合に分けて、それぞれ注意したいポイントを展望してみる。

切り替え直後の障害は「バグ」を疑う

 まずアプリケーションの不具合によるシステムダウンだ。大半はJavaやCOBOLなどで個別に開発したプログラムに含まれるバグが表面化するケースである。

 アプリケーションの不具合によるシステムダウンには、二つの傾向がある。一つはシステムに新機能を追加したり、大幅な機能修正を施したりした直後に起こりやすいこと。もう一つは全面ダウンでなく一部の機能だけが使えなくなるケースが多いことだ。新機能などをリリースした直後に一部ダウンが起こったら、アプリケーションのバグを真っ先に疑うべきだろう()。

図●システムダウンの現象から原因を突き止めるためのフローチャート
図●システムダウンの現象から原因を突き止めるためのフローチャート

 新機能などをリリースする切り替え作業は、正月や5月の連休などに実施することが多い。システムを数日間停止できるからだ。したがって、正月明けや5月の連休明けなどはアプリケーションの不具合が起こりやすいといえる。

 バグをなくすにはテストを強化するしかない。だが、いくらテストをこなしてもバグを完全になくすのは現実的には不可能といわれる。それだけに、バグが表面化したときに、いかに早く原因を突き止め対策を講じることができるかが重要になる。

OSなどの不具合は全面ダウンにつながる

 次はOS・ミドルウエアの不具合によるシステムダウンだ。最大の特徴は、アプリケーションの不具合よりも影響が広範囲に及びやすいことである。システムの全面ダウンにつながるケースも少なくない。

 2008年には、ある銀行でデータベース管理ソフトのバグが表面化し、オンライン・システムが全面ダウンするトラブルが起きている。15年以上前から存在していたバグが、ハードウエアとソフトウエアをバージョンアップした数日後に表面化した。当初は原因が全く分からず、究明に手こずった。

 OSやミドルウエアの不具合は、解決に時間がかかりやすい。複数のソフトを使うシステムの場合、原因の切り分けが難しいからだ。問題のソフトを特定できたとしても、そこから開発元に調査を依頼しなければならないこともある。

 OSやミドルウエアの不具合は、ハードやソフトをバージョンアップしたり、ソフト製品にパッチファイルを当てたりした直後に発生することが少なくない。アプリケーションの不具合と同様に、システム環境に何らかの変更を加えた直後が要注意だ。

 これらソフトの不具合については、これまでも指摘されてきたことではあるが、2009年以降も引き続き注意すべきポイントである。