-PR-
締切り
済み

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

  • すぐに回答を!
  • 質問No.11888
  • 閲覧数550
  • ありがとう数9
  • 気になる数0
  • 回答数3
  • コメント数0

はじめまして、高橋です。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)に変更してみました。

以上の対策は取ってみたものの、
未だ原因がわからず不安定な状態が続いています。

皆様は、同様の経験がありますでしょうか?
もしくは、別にこんなことが考えられるといったご意見もありましたら御教授ください。
よろしくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル13

ベストアンサー率 33% (427/1283)

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

 その時には、ODBCの接続中のエラー処理が不十分で、エラーになったオブジェクトを解放していないのが原因で、次のODBCオブジェクトの生成に失敗して、その失敗に起因して、処理が止まってしまっていました。

 ODBCの接続や操作は、必ず失敗するって思い。全ての操作で例外処理を追加して対処した所、サーバ停止の頻度が激減しました。実用レベルまで頻度を落としたとは、サーバの動作を監視して、サービスが停止状態だった場合に、サービスを再起動するスクリプトを組んで、組込むことで対応しました。
お礼コメント
noname#380

mnabeさん、早速の回答ありがとうございます。
心当たりを再度あたってみます。

回答の中に「サービスを再起動するスクリプトを組んで、
組込むことで対応しました。」という部分がありましたが
ASPだけを再起動するにはどうしたら良いのでしょうか?
投稿日時 - 0000-00-00 00:00:00


  • 回答No.2
レベル13

ベストアンサー率 33% (427/1283)

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

 『IISのサービスの再起動です。』
 スクリプトは面倒なので割愛しますが、マイクロソフトのページにサンプルが載っていたと思います。
  • 回答No.3
レベル8

ベストアンサー率 67% (21/31)

IIS のリスタート方法は、IIS 5.0 の場合、iisreset コマンドなどで行えます。 IIS 4.0 の場合は、IIS の関連するすべてのプロセスを強制終了させる必要があります。 特に、MTS 関連を確実に終了させないと、あとの動作に問題が発生します。 次に、停止の原因ですが、どの処理で発生しているのか、確認していただければと思います。 確認方法としては、イベントログに出力する方法が ...続きを読む
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エラーです"

のようになります。
スクリプトの処理中にエラーが発生して、処理が停止してしまった場合にも、イベントログにどこまで処理が行われたか、確認することができます。

確認していただければと思います
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ