2013年6月22日土曜日

「ページが見つかりませんでした」 ~ 「エラーが発生しました」 (^^;

つも当“Kyotani's Hobby Page”へのご訪問ありがとうございます
唐突にこんな書き出しから始めてみたんだけど、ふだんご訪問いただく方の中には、ここ何週間か「アクセスが遅い」「重い」という症状に気付いておられる方も多いと思う次第。

さて、このページのお客さんはその多くがZAQ以外のプロバイダーからのアクセスなのでその程度の影響なのかも知れないが、ここZAQのブログスペースを使っている「同士」のページを訪問すると、「管理画面を開くことができない」「投稿するとエラーが出てせっかく書いた記事が消える」という、ほとんど笑えないレベルのトラブルが頻発する状態になっていることが判る。

かく言う私も、トラブルは冷静に対処しつつ粛々とやり過ごして来た訳ではあるが・・・
今日の記事は、「たまにはこのテのネタも許されるかな」というのと、ユーザー視点な目で見たネタに、ちょっとした回避術なんかもプラスで盛り込めればということで(笑)


ZAQのブログスペース利用者が目下もっとも恐れているメッセージはやっぱりこれですかね・・・
※画面をクリックしてもらうと「元のサイズ」の画面が表示できるので、見づらい場合はぜひクリックを!

一般に、ブログのようなダイナミックにページ内容を生成する処理の場合、次のような過程を経てサーバーが処理を行ってくれることになる。

 ・今ユーザーが見ているページから、リンクの内容やログイン済みのセッション情報などをサーバーに送信。
 ・Webサーバーがテンプレートの内容によって情報を処理し、DB(データベース)に入っている情報参照のためリクエストを投げる。
 ・DBサーバーがDBの内容を検索し、Webサーバーに情報を投げ返す。
 ・Webサーバーがテンプレートの内容に従ってページ内容を生成し、ユーザーにページ内容を投げ返す。
 ・ユーザーのWebブラウザに次のページ内容が表示される。


ここで上記のエラーは、汎用的なエラーページと思われるのだが、色々エラーの発生する状況を観察していると、DBサーバーにリクエストを投げてから一定時間内に返信がWebサーバーに返されず、タイムアウトした場合にこの画面が表示されると推測される。
もちろん鯖のログファイルには詳細な要因は記録されているはずだが、一般人にはエラー内容を見せても百害あって一利なしなので、このテの汎用メッセージのみを表示させているのだろう。

一旦こういう状態になると、ユーザーはどんどん同じ処理をリトライするので Webサーバーや DBサーバーの負荷は上がり続け、エラーの発生しやすい状況が続き、ページ参照だけのお客さんにも「重い」状態がしばらく続くはずだ。

教訓:リトライはすぐ行うと逆効果、1~2分間を置いて試してみよう


は、記事を書いて保存しようとしたときに発生する、最もコワイメッセージ

このメッセージが出たときの対処法が判らず、何度かリトライしている間に改善できずに「記事内容をロストした」という方も少なくないはず。
このメッセージも、言うならば先ほどの「DBサーバーへのリクエスト」に一定時間返信がなかったためのエラーと思われるのだが、一般的に DBの内容変更が伴う処理ではロールバック(変更内容を元に戻す)のための準備など余分な処理が追加されるため、結果的により重い処理になりがちで、エラーの発生確率も上がる可能性が高くなる。

これに備える最も適切な対処は「保存ボタンを押す前に、テキスト入力エリアの内容を全コピーし、メモ帳に貼り付けておく」ことに尽きる。 要は、カーソルを先頭に持っていって Shiftキーを押しながら最後まで選択し、Ctrl-Cまたは右クリックでコピーを選択、メモ帳の上で右クリックして貼り付け・・・ だ。

画像はすでにサーバーにUploadされているので、保存時に時間を元に採番されるファイル名が判っていればもし登録失敗しても再Uploadは不要、ファイル名を含んだテキストを保存しておくか、画像管理のメニューから選び直せばこちらもOKだ。

ちなみに、上記画面が表示されるまでに入力内容をコピー&ペーストできなかった場合だが、大抵の場合はブラウザの「戻る」ボタンで入力画面まで戻れるので、戻ってからコピー&ペーストをリトライすることができるが、これもブラウザのキャッシュコントロールの関係で失敗する可能性があるので、まずはエラー画面に表示されているテキストをコピー&ペーストし、それからブラウザの「戻る」ボタンを試すなど、やや慎重気味な手順で臨むほうが良いだろう。

どっちにしても、テキスト内容が保存されていれば、再度入力画面で貼り付けてやれば、タグを含めて多くの情報を元に戻すことができる。 くれぐれも冷静にネ。


後はコレ 緊急メンテナンスの画面

この画面は前回 6月09日の際のものだが、おそらくあと1~2回はありそうな雰囲気だな(爆;

まぁ推測するに、ZAQのメンテで DB参照のセキュリティレベルを上げるためか何かは知らないが、プログラムの改変をやったんだろうね。 それが結果的にDB参照の速度を下げるのにつながり、ほとんど全ての画面に共通で使われるモジュールのためか、サーバーの負荷が少し重くなると所定の時間内に処理が完結しなくなったと考えるのが適当だろう。

最終的にはZAQさんに頑張ってもらうしか方法はないんだけど、改変した履歴をきっちり管理して、元に戻すという選択肢も含めてしっかり対応してもらいたいもんですなぁ。

ユーザー側も「遅い」「エラーが出る」と嘆きたくなるのはとりあえず置いといて、粛々と自己防衛のために対応をお考えいただくことをお勧めする次第。

ではでは、今日はこんなネタにて失礼・・・

6/23追記:
ZAQから「外部ネットワークからの大量アクセスが断続的に発生」との報告がされているようだが、どこからの大量アクセスなんだろうね・・・
とりあえずアクセス制限で対応しようとしているみたいだけど、果たして効果はあるのか っていうか、今も相当遅いんだけど・・・

0 件のコメント: