[Seasar-user:14336] Re: 【再】S2HttpSessionのlastAccessedTimeについて
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2008年 5月 21日 (水) 14:07:20 JST
ひがです。
> 石井と申します。お世話になります。
>
> [Seasar-user:14241] S2HttpSessionのlastAccessedTimeについて
>
> で質問させて頂いたものです。
> ご回答頂けなかったようですので、しつこいとは思いつつ
> お忙しい中、多くのご質問に埋もれてしまったのかも、とも思い、
> 再度質問させて頂く次第です。以下が質問内容になります。
>
返事が遅くなり申し訳ありません。
> S2HttpSessionのlastAccessedTimeについて、
> 質問があります。
>
> Seasar 2.4.25
> SAStruts 1.0.2-rc2
> を利用させて頂いております。
>
> アプリケーションにて、
> セッションタイムアウトを検知しようと、
> HttpSession#getLastAccessedTime()を
> 実行したところ、どんなにリクエストの間隔をあけても、
> 数百ミリ秒前ぐらいの値が返ってきてしまいます。
>
> そんなはずはないと思い調べた所、
> アプリケーションがHttpSession#getLastAccessedTime()を呼ぶより前に
> SessionComponentDeployerというオブジェクトが
> SessionスコープのコンポーネントをHttpSessionに復元(?)しようとする際、
> HttpSession#setAttribute()を呼んでいるため、
> S2HttpSession#setAttribute()では、lastAccessedTimeが
> そのタイミングで更新されてしまっているように見えます。
>
セッションスコープのコンポーネントを扱う場合には、
そのコンポーネントにアクセスするたびにlastAccessedTime
は更新されます。
これは、セッションにオブジェクトを格納している以上
そうなるんじゃないかと思います。
よろしくお願いします。
Seasar-user メーリングリストの案内