こんばんは。
今日のタイトルは、最悪ですね。
他責だなんて、
こいつサイテーなヤローだなとお思いでしょう。
でも読み終わった時には、そうでもなくなると思います。
同僚が、困り果てていました。そんな同僚をみかねて。
はい、出ました。本番環境で動かない。
あなたもよくこんなことに出くわしていると思います。
さて、今回はなんで、こんなことが起こったのでしょうか。
まずはどこでエラーが起きているのかを調査。
私も確かめましたが、設定は合っているようです。
実はすでに、ちょっと察しがついていました。
WEBサーバから、DBサーバに向かって、psqlコマンドを打ちました。
psql postgres -h dbhost
こんな感じですね。
はいここでエラーが起きました。
psql: could not connect to server: Connection refused
あーあ、やっぱり!!
これ、WEBサーバからDBサーバへの許可されてないじゃん!!
ネットワークエンジニアへの 怒り浸透圧です。
ということで、ネットワークエンジニアが設定を直すと、すぐに不具合が収まりました。
WEBサーバから、DBサーバへの接続許可が設定されてなかったんですね。
何をテストしたんだ!と今まで散々不具合を経験してきた自分のことを棚に上げます。。。
でも、日頃からよく思っているんです。
ネットワークエンジニアってテスト仕様書とかどうしてるんだろう?
今まで一度も見たことがない。
特にこの時のネットワークエンジニアは全ての作業がブラックボックスで何をいつも確認しているかがすごく怪しいエンジニアでした。
結局原因は、開発環境、ステージング環境はちゃんと設定していたのですが、本番環境は設定ミスっていたんですね。おいおい。
この時は、自身を疑うのではなく、他の部分で問題ないかを突き詰めていって結果が功を奏しました。
でも結構、これ使います。
だって、他の部分に原因があるのに、自分の作ったところをどれだけ原因調査しても、一生不具合の原因は探し出せません。
なら、他に原因がないことが確定してから、スッキリした状態でこちら側のシステムを疑えばいいんです。
でも、気をつけてください、このやり方は時と場合によります。
連携するシステムが、お客様だったりする時に、「お宅に問題があるんじゃないですか?」みたいな雰囲気出すと、モロに嫌がられますし
そんな態度をとって、もし原因がこちら側にあった時は、もう恥ずかしいとか、そういうレベルの話ではなく、ものすごく険悪になってしまいます。
今回は自社システム内の連携で、こちらで調べれる範囲にある中で、外部に原因があるかを徹底的(それほどでもないですが、、)に調査したのです。
よく、
といった問い合わせに
なんて昔よく聞き返したものです。
そりゃ、おたくの環境のネットワークに原因があるだろ!
なんてよくある話。
はい、本日の教訓
ひとーつ:原因がどこにあるかはわからない、自身のシステム以外にも原因を調査せよ!
要するに、どこに不具合の原因があるかがわかなない中で、他のシステムに原因があるかもしれない可能性を潰してはならないということです。
自システム?他システム?ハード?お客様の環境?ブラウザ?PC?
どこに不具合の原因があるかはわかりません。
全てに目を向けて、原因がどこにあるかを特定しなければなりません。
これができない人は、不具合の迷い人になります。
こんなことできてるって!そんな視野狭くないって!
と思ったあなた。
そんなことないんです。
上から目線ですみませんが
私は他の人がよく調査する範囲をなんの理由もなしに、かなり狭めてから、不具合を探しているのを目にします。
そこに問題がないことを悟ると、ようやく他のところに原因を探し始めます。
逆なんです。
まずは、どの範囲で調査すればよいかを切り分けて、確たる理由をもって、調査する範囲を狭めて
そこから、さらに、確たる理由をもって、狭めて、狭めて、不具合を特定するんです。
これについては、私なりの不具合特定のやり方があるので、今度また記事を書きます。
「他責にせよ!」の印象が少しは良くなりましたか?
ではでは。ご愛読ありがとうございました。