今日の障害
あまり話題にしたいニュースが無いときは仕事の話でも書いてみようと思いました。
今日の障害、プログラムでのデータ値の上限超えについて(非自分)。
とあるデータをデータベース上で管理していますが、項目は数字で3桁まででした。処理上は000から連番で管理。999の次は1000になって、3桁の項目には入らないわけです。デザイン時にどう考えたのかわかりませんが、このデータが1000を超える可能性は無いと考えてしまったことが問題です。可能性が無いと考えているから、実際にそんなデータが入力されたときに、おかしくなるんですが、想定してないから、プログラムがどういう動きをするかわからない(汗)。このようなデータ桁数あふれでの大抵の場合は、データベースにデータ追加時に、登録できないエラーが戻ってきて、異常終了してしまいます。場合によっては000で処理を続けようとするかな。実際にそのようなデータが入力されてしまいました。
こういった障害を出してしまうと、どうなるか。あんたのトコのプログラム、データベースの桁数超えるようなデータが入力されてもおかしくならない?大丈夫なの?と、不安になるわな(汗)。
で、そのプログラム全部だったり、(人依存なら)デザインした人の手がけた部分だけだったり、プログラムの処理を仕様書や実際のコードを全部見直して修正したり、試験したり、そんなデータがありえないことを検証したりして、問題の無いことをわかるように説明してあげないといけないです。ああ大変。
だいたい設計時に設定していた予測値自体が、システムが動き出してから経年変化することで事情が変わったりすることもあります。こういった不測の事態に備えて、データをチェックするだけのプログラムを定期的に動かしたり、件数を出力させて経年変化から予知したりするようなこともあります。何%かを超えたら警告するとかね。
しかし、今回の件では何もされていない上に、予測値(データ諸元)に関して仕様書に何も書いてない。最悪ぅ。
最近、デザインの合間に、こんなことばっかやってます(泣)。