2023年10月30日
システム障害 〜プログラム研究室〜
こんにちは!
ナビゲータのEVEです。
本日の午後から、本来の開発に戻っています。
ただ、わけの分からないバグが多発・・・。もう、Prototype EVEのバッチ処理を形だけ動かして、EVEシステムの開発に移ろうかと考えていた30日も遅いというか、時計は、既に31日になっています。そんな時間にやっと障害の原因がわかりました。
[今日の障害]
今日の障害は、2件・・・。
1つ目は、unsetでセッション変数を削除しようとしていたのですが、明示的にセッションを指定していなかった・・・。PHP5で使用していた、session_unregisterと同じような使用方法をしていたため、エラーになったというもの・・・。これに似たようなことは以前もあったので、すぐにバグを見つけることができました。
2つ目は、これが分からなかった・・・。結果から言うと、 クラスの呼び出し間違い ・・・。Prototype EVEのDB関連関数から本来DBコネクトのクラスを呼ぶ場合、New Prototype EVEを呼び出さなくてはいけないのですが、EVEシステムのDBコネクトクラスを呼んでいました。DB関連関数は何回も試験をしていたし、もうバグはないという先入観があったため、バグを見つけるのに時間がかかりました。
[ちょっと心がおれそう]
分かってしまえば、何だっていうことになるのですが、見つけるまでが大変です。プログラムの中身を把握している私からみたら、わけの分からないエラーメッセージが頻発するし、そのエラーの発生箇所以外の部分では、正常にプログラムが動いています・・・。
ちょっとぐらいエラーが出ていてもいいから、バッチ処理の最低限のところだけ動かして、EVEシステムの開発に移ろうかとも思ったぐらいでした。ただ、この時間まで粘って良かったです。
昔、業務でJavaプログラムをEclipseで見たのですが、F5でしたっけ?1ステップずつデバックしていくの???その機能で、デバックしていく場合、自分の所属しているプロジェクト以外のロジックもトレースすることになるうえ、どのくらいの階層になっているのか分からないので、非常にストレスがたまったのを覚えています。しかも、 他人のプログラム です。
ただ、以前大きなプロジェクトで障害が発生したとき、年配のシステムエンジニアの人が、膨大なプログラムを ラインプリンタで紙に出力 し、ロジックを追っている姿を見たことがありますが、あのときの姿を思い出せば楽になったような気がします。多分、その時の紙に出力したプログラム、年配のシステムエンジニアの人が作ったプログラムではないと思います。業務って大変ですよね・・・。
[あとがき]
ちょっと、障害続きでなかなかシステム開発が進んでいませんでしたが、明日からは、もうちょっと、進捗が上がるような気がします。まっ、どうなるか分からないけれど・・・。言い訳ですが、オブジェクト指向のプログラムをゼロから作るの今回が初めてなんですよ・・・まだ、土地勘っていうか、プログラム勘がないんだと思います。しばらく、開発を休んでいたこともありますし・・・。これからは、毎日プログラムするようにしようかな?
では、また!!!
追伸・・・。
現在、31日ですが、ブログの日付は、30日23時59分59秒でアップロードしています。