[Seasar-user:18597] Re: [SAStruts][S2JDBC]セッションタイムアウトとTomcat停止時にDBにアクセスする方法
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 10月 7日 (水) 20:00:01 JST
小林 (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 上で頑張る価値はないです.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内