• 締切済み

ASPのサービスが停止してしまう

はじめまして、高橋です。OKWebは初めてです。 ASPで社内用のWebアプリケーションを作成し、運用中なのですが 時々(現在のところ2~3日に1度)、サーバのASPのサービスだけが 停止してしまい困っています。 ASPが実行できなくなってもノーマルなHTMLファイルは正常に表示されます。 サーバを再起動すれば復活するのですが・・・ 具体的には 最初のユーザー認証の画面(ASPファイルですが、DBへのアクセスは無し) は表示されるのですが、パスワード確認用のスクリプトへSUBMITすると 砂時計状態になってしまいます。 どうもDB(mdb)へアクセスする部分で停止しているような気がします。 サーバはNTServer4.0 + IIS4.0です。 社内の人間に聞き取り調査をした結果、 以下2点の原因らしきものが考えられました。 (1)ASPスクリプト内で作成したオブジェクトを明示的に開放していない事。 これに関してはすべてのオブジェクトについてNothingキーワードにて 明示的に開放しました。   (2)ODBCの設定で、バッファの容量が少ない。 これに関しては初期値が512(KB)になっていたので ひとまず2048(KB)に変更してみました。 以上の対策は取ってみたものの、 未だ原因がわからず不安定な状態が続いています。 皆様は、同様の経験がありますでしょうか? もしくは、別にこんなことが考えられるといったご意見もありましたら御教授ください。 よろしくお願いします。

みんなの回答

  • kawabata
  • ベストアンサー率67% (21/31)
回答No.3

IIS のリスタート方法は、IIS 5.0 の場合、iisreset コマンドなどで行えます。 IIS 4.0 の場合は、IIS の関連するすべてのプロセスを強制終了させる必要があります。 特に、MTS 関連を確実に終了させないと、あとの動作に問題が発生します。 次に、停止の原因ですが、どの処理で発生しているのか、確認していただければと思います。 確認方法としては、イベントログに出力する方法があります。 イベントログに出力する関数は、次のようになります。 Sub TraceEventLog(intType, strMessage)  Dim wshShell  Set wshShell = Server.CreateObject("Wscript.Shell")  wshShell.LogEvent intType, strMessage End Sub intType には、0,1,2,4,8,16 の値を設定します 0:成功, 1:エラー, 2:警告, 4:情報, 8:成功の監査, 16:失敗の監査になります。 呼び出し方は、 TraceEventLog 1, "ODBCエラーです" のようになります。 スクリプトの処理中にエラーが発生して、処理が停止してしまった場合にも、イベントログにどこまで処理が行われたか、確認することができます。 確認していただければと思います

参考URL:
http://www.kawabata.com/
すると、全ての回答が全文表示されます。
  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.2

 ASPだけの再起動ではありません。  『IISのサービスの再起動です。』  スクリプトは面倒なので割愛しますが、マイクロソフトのページにサンプルが載っていたと思います。

すると、全ての回答が全文表示されます。
  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

私も同様の経験があります。  その時には、ODBCの接続中のエラー処理が不十分で、エラーになったオブジェクトを解放していないのが原因で、次のODBCオブジェクトの生成に失敗して、その失敗に起因して、処理が止まってしまっていました。  ODBCの接続や操作は、必ず失敗するって思い。全ての操作で例外処理を追加して対処した所、サーバ停止の頻度が激減しました。実用レベルまで頻度を落としたとは、サーバの動作を監視して、サービスが停止状態だった場合に、サービスを再起動するスクリプトを組んで、組込むことで対応しました。

noname#380
質問者

お礼

mnabeさん、早速の回答ありがとうございます。 心当たりを再度あたってみます。 回答の中に「サービスを再起動するスクリプトを組んで、 組込むことで対応しました。」という部分がありましたが ASPだけを再起動するにはどうしたら良いのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A