Home > アプリケーション開発 > DBにアクセスできない、あなたのWebアプリケーションはどう対応すべきか

DBにアクセスできない、あなたのWebアプリケーションはどう対応すべきか

【はじめに】
まず、前提条件はこうなっています。あなたはレンタルサーバーでDBを使ったWebサイトを構築もしくは運用しているものとします。

動的にWebページを作成するのにDBを使っていて、DBが障害・保守作業などで利用できない場合、どのような対応をしていますか。作りっぱなしで何もしていない?それは、個人的にはとてもまずいと思います。まあ、状況によっては仕方がない場合もあるとは思いますが。

【対処方法】
本記事では、簡易な方法として、メッセージを表示する方法を考えています。
そりゃあ、「複数DBを使える仕組みを用意する」というのも1つの方法のですが、じゃあ、使えるDBが1個しかない場合にどうするの、には対処できないので、今回は見送りました。

Webアプリケーションにメッセージを埋め込むと、Webアプリケーションの数が増えてきた時に直すの大変なので、別ページ(URL)にしておき、configファイルでURLを定義するというのはどうでしょう。

次に、みなさんは、どんなメッセージを表示していますか?

もしかして、
「DBエラー」、「DBに接続できません」だったりしませんか?

実は、このメッセージは私のWebアプリで表示していたものです^^;。
この表示を読んで利用者は、何が起こっているかを理解し、何かしてもらえるでしょうか?
Webアプリの利用者が開発者ならよいですが、そうでなければわからないと思います。
一見よさそうですが、考え直した方がよさそうです。

メッセージの内容ですが、簡単なところでは以下の2種類を思いつきます。

  • 固定メッセージを表示
  • 停止予定、障害発生中の情報を表示

「固定メッセージを・・・」はhtml画面を作成して置いておくので、疑問点はないですよね。みなさんが適切な内容を考えて実践してください。

「停止予定・障害発生中の情報があれば・・・」は、運用側で、前もってレンタルサーバー会社からお知らせを受け取ったり、DBサーバーの障害を自ら発見した場合に、具体的な情報もお知らせしたい場合です。
毎回、htmlを修正してもOKですし、項目を入れると動的にお知らせ画面を作る仕組み作ってもよいです。
ページは同じレンタルサーバーでもよいし、他のレンタルサーバーで作ってもよいです。なお、同じレンタルサーバーを使う場合は、障害が起こっているDBを使えないので、テキストファイルに情報を保存して表示するのもアリです。

レンタルサーバー会社が出しているページにリンクを飛ばすのもよさそうですね。
一見よさそうですが、注意が必要だと思います。情報掲載が遅い場合もありますし、情報が錯綜していてわけがわからないこともあります。また、運用者しかわからない表現も多いので、利用者は多分何のことかわからないと思います。あなたが咀嚼して利用者の方々にわかる言葉で書いたhtmlを作成した方がよいと思います。
まあ、参考程度にリンクを張る分には構わないとは思いますが。

【最後に】
これまで構築だけして、立場上口出しができず、ああやったらいいのでは、こうやったらいいのでは、と思うWebサービスが多数あります。
今は、口出しすればよかったと反省していますが、過去は変えられないので、これから構構築するお客様のサイト、自分のWebサービスにぶつけていきたいと思っています。すぐにはできないかもしれませんが、よりよくなる改善を継続していきます。
今後、本記事の考えが少しは変わるかもしれませんが、相手の気持ちを考える基本は変わらないと思います。