- - PR -
セッションタイムアウトの判断
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-01 21:06
李と申します。
Session_Endについて、下記の質問がありますので、 ご存知の方がご教授お願いいたします。 セッションがタイムアウトする場合も、アプリケーションが正常に終了する場合も、Session_Endを実行すると認識しておりますね。認識が正しいでしょうか? 認識が正しければ、Session_Endというメソッドの中に、セッションがタイムアウトするか、アプリケーションが正常に終了するか について、どのように判断しますか? 以上 | ||||
|
投稿日時: 2005-11-01 21:38
NAL-6295です。
セッションがタイムアウトした時にSession_Endが実行されるのは、 セッションのモードがInProcの時だけです。 また、セッションのモードがInProcの時は、プロセスリサイクリングの度に、 セッションがクリアされてしまいますので、Session_Endの発生は保証されません。 | ||||
|
投稿日時: 2005-11-02 10:03
→NAL-6295 様
ご回答ありがとうございます。 セッションのモードがInProcの時では、セッションがタイムアウトする場合でも、アプリケーションが正常に終了する場合でも、Session_Endが実行されるという認識が正しいでしょうね。よろしいでしょうか? そうすれば、Session_Endというメソッドの中に、セッションがタイムアウトするか、アプリケーションが正常に終了するか について、どのように区別しますか? | ||||
|
投稿日時: 2005-11-06 16:21
複数の問題があります。
・Session_End は、InProc でなければ発生しない ・InProc では、プロセスリサイクルのため、Session_End を発生させずにセッションが消える(つまり、必ず発生するわけではない) また、「アプリケーションが正常に終了する」のは、いつでしょう?ユーザが「ログオフ」したからといって、アプリケーションが終了するわけではありません。 _________________ 検索のコツ・質問のコツ [ メッセージ編集済み 編集者: Jitta 編集日時 2005-11-06 16:21 ] | ||||
|
投稿日時: 2005-11-06 17:36
NAL-6295です。
よろしくないです。 Session_Endが発生するのは、 ・セッションのモードがInProcの時で、 ・セッションがタイムアウトになった時 のみです。 もちろん、プロセスリサイクリングで再起動された時にセッションがクリアされてしまいますが、そのタイミングで発生する事はありません。 つまり、プロセスリサイクリングが発生したタイミングですべてのセッションは切断されてしまうが、だからといってセッションタイムアウトになったわけではないので、その場合、該当セッションに対応したセッションタイムアウトは発生しません。 どちらにしろ、プロセスリサイクリングの発生タイミングを意図的に操作する事はできませんので(厳密に言えば、許容するメモリの使用率を変更することで後ろにずらすことは可能)、Session_Endの発生を期待した実装はしない方が良いでしょう。 |
1