- - PR -
Webアプリケーション実行時のサーバ変数の持ち方について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-05-31 18:28
Jitta様ご返答ありがとうございます。
_________________________________ えっと、ASP.NETワーカプロセスは、デフォルトではメモリの60%に相当するメモリを確保すると、リスタートします。プロセスが再起動するので、他のプロセスに保管しているセッション情報以外はすべて消えます。 _________________________________ ということは、例えば http://ドメイン/A/A.aspx http://ドメイン/B/B.aspx の二つのWebアプリケーションを実行している状態で、A.aspxが メモリの60%を越えるとプロセスがリスタートし、B.aspxで使用 していたセッション情報も吹っ飛ぶということでしょうか? それとも、A.aspx内のセッション情報が無くなるだけで、B.aspx 内は保持されるのでしょうか? 誠に申し訳ありませんが、よろしくご教授ください。 | ||||
|
投稿日時: 2004-05-31 19:15
ASP.NETのワーカプロセス、です。ワーカプロセスは、1つですべてのアプリケーションを処理します。実際に、タスクマネージャの[プロセス]タブで、「apnet_wp.exe」を探して、確認してください。(IIS6.0だと、事情が変わります) 「ASP.NET の構成」や、「Web フォームの状態管理」、それぞれの下にあるドキュメント、およびリンクされているドキュメントを参照してください。 「他のプロセスに保管しているセッション情報」というのが、混乱させたかな?これは、「Webフォームの状態管理」に書いてあるのですが、セッション情報をデータベースに格納したり、セッション状態を格納する為のサーバを別に立てて、そちらで管理したりすることができます。これを指しています。 | ||||
|
投稿日時: 2004-06-02 10:52
Jitta様 ご返答ありがとうございます。
一応、ご紹介されたページを読んでは見たものの、理解には程遠いようです。 ただ、上でおっしゃられていることは、セッション情報等を他に保存しない 限り、60%を越えた時点でリセットされてしまうということでよろしいでしょうか? ふと思ったのですが、ロジックで無限ループが発生していたASP.NETのページを 起動させていたマシーンは落ちず、さらに他のASP.NETのページは問題無く 起動しておりました。 これはASP.NETのワーカプロセスが自動的にリスタートしていたということ でしょうか? | ||||
|
投稿日時: 2004-06-02 11:48
自動的にリスタートされるとは言っても、サーバでの処理中に切られたら困りますから、基本的にはその時点で処理中のリクエストが完了するまでは待つはずだと思います。 ただし、これでは無限に動作しているときや、デッドロック時に永久にリスタートできないので、リスタート要求をしてから強制的にリスタートするまでのタイムアウトがあったと思います。 あと、デッドロックを防ぐために、1リクエストの処理に一定時間以上かかるとリスタートもあったような気がします。 ※なんとなくの記憶で書いてるので、ちゃんと確認はしてください。 |