AN HTTPD ゲストブック/コメント集(2002年5月29日23:14)


靴下カタオ 2002/06/01 08:41

中田さん、どうも申し訳ありませんでした。
中田さんから見ればバカな過ちかも知れませんが、どうか今後ともよろしくお願いします。


中田昭雄 nakata@st.rim.or.jp 2002/05/31 20:44

靴下さん、
前回のOSやError 500 がどうこういう以前の話ですね。
ネットワークアクセスが必要なものをダイヤルアップ接続しないで済まそうというのはどだい無理な話に決まっています。 ちょっとがっくりです。


靴下カタオ 2002/05/31 01:57

中田さん、どうもありがとうございます。
OSとの関わり、Error 500 について等、承知いたしました。

前回投稿のあと、無料配布の掲示板を大幅に改造する過程で、
やはり同様に『画面が動かない』という現象が発生しました。
メール送信のCGI以外でもこういう現象が起こるということは、
やはり、個々のスクリプトの不具合によるものではないことを示しているようでしたが、
また一方、メール送信フォーム、掲示板の両方に共通していることは、
配布されているものをそのまま使っているうちはうまくいっているのに、
大幅な修正を加えると障害が起こるということです。

ところが、昨日の夜11時過ぎにダイヤルアップを接続してやると、
両スクリプトとも何の問題もなく実行できることがわかりました。
考えてみると、メール送信フォームは壁紙で、
掲示板はバナー広告等で外部リンクを挿入していたのです。

試しにオフラインにして、外部リンクをはずして実行して、
うまくいくことがわかりました。
それで、再び外部リンクに戻して、オフラインで実行すると、
やはり画面が動かなくなるところまで確認できました。

そういうわけで、今後はデバッグ段階では外部リンクを挿入しない
という方針でやっていこうと思いますが、
これで完全な解決になるのか、まだわかりません。
また相談させていただいたときは、どうかよろしくお願いします。

どうもありがとうございました。


中田昭雄 nakata@st.rim.or.jp 2002/05/30 21:26

靴下さん、
まず、プロバイダのサーバ上で動くからといってそのCGIがまともだとは言えません。
プロバイダのサーバは多くはUNIXで、まずOSが違いますし、ネットワーク設定もちゃんとしてあるものです。
靴下さんのPCは、Windowsで、ネットワークの設定もプロバイダのサーバとは違います。
特にメール送信のCGIではそのあたりが問題になります。
あるCGIがプロバイダのサーバ上で動くのは、CGIに文法エラーがないという程度に考えておいた方がよいでしょう。 もちろん、OSの違いとネットワーク動作の違いの要点がわかっているのであれば、CGIの動作そのものは同じとみなせるのですが。

次に、AN HTTPD でその「リネームできません」というエラーが出た場合は、CGIプロセスが異常を起こしてプロセスが残っていることを意味します。 そうなったら、CGIだけを元に戻してもまともに動くはずはありません。
CGIプロセスの残骸をきれいに始末するか、Windowsを再起動しない限り元の状態には戻りません。

そうなった時に、毎回Windowsを再起動するのは手間なので、そういう場合は AN HTTPD のウィンドウを表示させておいて実行するのがよいでしょう。 そうしておくと、CGIプロセスのアイコンがタスクバー上に出るので始末するのが容易になります。

以上を踏まえて、どういう症状が現れるのか、もう一度説明していただけますか?


靴下カタオ 2002/05/29 23:14

いつもお世話になっております。
メール送信フォームを

http://cgi.niji.jp/home/ashizuka/postmail01/postmail01.cgi

にアップロードしています。
フォームの画面でメールアドレスのみを入力し、
『送信する』をクリックすると『確認画面』に遷移し、
『この内容で送信する』をクリックすると、
『完了メッセージの画面』が表示されます。
プロバイダのCGIサーバでは正しく動いているようですが、
全く同じスクリプトが AN HTTP Server では非常に不安定な動きをします。
現在、フォームの画面でメールアドレスのみを入力し、
『送信する』をクリックしても画面が全く動きません。
ところが、ある特別のメールアドレスを入力して送信すると
CGIサーバと同様にうまくいきます。
このメールアドレスは,おかしくなる前に入力したもので、
うまくいっているといっても、プログラムを実行しているにしては、
画面の遷移のしかたが非常に速いので、
多分前に実行した結果が残っていて
それが表示されているだけなのではないかと思います。

『おかしくなる前』と言いましたが、
おかしくなったのは、大幅な改造をやった後です。
おかしくなる前のスクリプトも保存していたので、
試しにこれを実行してみると、
何と、これも画面が動かなくなっていました。
ただし、おかしくなる前のものも後のものも、
動きは一定していなくて、
何かのひょうしにうまくいくように見えたり

Error 500
CGI エラー - 標準出力一時ファイル 1.x を stdout.x にリネームできません。
--------------------------------------------------------------------------------

AnWeb/1.38c

というメッセージを発行したり、とにかく不安定なのです。

別の掲示板のスクリプトを AN HTTP Server でテストしたときも
この『送信をクリックしても画面が動かない』という現象が起こったことがあります。
一方、プロバイダのCGIサーバにアップしたのは
今までのところこのメール送信フォームのCGIだけなんですが、
これがプロバイダのCGIサーバ上で
上に述べたような動きをしたことはありません。

現状では、おかしなプログラムを走らせたために
うまくいっていたプログラムまで
おかしな動きをするようになったように見えます。

プログラムが完全ではないのかも知れませんが、
複数のプログラムで似たような障害が起こるということは、
AN HTTP Server の設定にも
不完全な部分があるのではないか、という気がします。

以上読んでいただいて、おわかりになることがありましたら、
教えていただけないでしょうか。どうかよろしくお願いいたします。