[Seasar-user:18620] Re: [SAStruts][S2JDBC]セッションタイムアウトとTomcat停止時にDBにアクセスする方法

山田 祐己 [E-MAIL ADDRESS DELETED]
2009年 10月 9日 (金) 14:44:47 JST


小林さま

お世話になります。山田です。

> 対処法としては,SessionListener で必要な
> コンポーネントだけを定義した dicon を使って
> コンテナを初期化するか,Tomcat 停止時は
> SessionListener でレコードを削除しないかの
> いずれかになるかと.
>
> 自分なら後者にしますね.
> どうせ Tomcat が停止している間にセッションが
> タイムアウトするケースもあるでしょうから,
> 別途バッチでレコードを削除する必要があるはず.
> であれば,Tomcat 上で頑張る価値はないです.
Tomcatのバージョンによって違うのかもしれませんが、
6.0では、Tomcat停止の際に、その時点で存在する
Sessionすべてで、sessionDestroyedのイベントが拾えました。
その為、ここで消すのが早いと考えた次第です。

ただ、Tomcatプロセスの予期しない停止等を考慮すれば
バッチ対応の方が確実ですので、
ご提案の通り、後者で進めたいと思います。

有難う御座います。

山田 祐己(Yuki Yamada)
E-Mail [E-MAIL ADDRESS DELETED]



Koichi Kobayashi さんは書きました:
> 小林 (koichik) です.
>
> Date:    Wed, 07 Oct 2009 13:41:43 +0900
> From:    山田 祐己 <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:18590] [SAStruts][S2JDBC]セッションタイムアウトとTomcat停止時にDBにアクセスする方法
>
>   
>> 実際に行ないたい事は、セッションタイムアウトとTomcat停止時に
>> レコードを削除するという事なのですが、Coldデプロイに切り替えても、
>> 問題無い様に動作させるには、何か設定が必要でしょうか。
>>     
>
> COOL deploy では,コンテナの初期化時に自動登録を
> 行い,コンポーネントを初期化します.
> その際,SAStruts 関連のコンポーネントは
> S2 コンテナから ServletContext を取得しますが,
> SessionCheckListener ではコンテナの初期化時に
> ServletContext を設定していないため,ぬるぽが
> 発生しています.
>
> Web コンテナ上で S2 コンテナを初期化するために
> 必要なコードは以下のソースを参照してください.
>
> org.seasar.framework.container.servlet.SingletonS2ContainerInitializer
>
>
> 対処法としては,SessionListener で必要な
> コンポーネントだけを定義した dicon を使って
> コンテナを初期化するか,Tomcat 停止時は
> SessionListener でレコードを削除しないかの
> いずれかになるかと.
>
> 自分なら後者にしますね.
> どうせ Tomcat が停止している間にセッションが
> タイムアウトするケースもあるでしょうから,
> 別途バッチでレコードを削除する必要があるはず.
> であれば,Tomcat 上で頑張る価値はないです.
>
>
>   





Seasar-user メーリングリストの案内