[Seasar-user:17923] Re: TomcatセッションレプリケーションでDTOの値が取得できない
s.o
[E-MAIL ADDRESS DELETED]
2009年 7月 3日 (金) 16:54:10 JST
To:小林さん
長内です。
今回の件について、質問の仕方や説明不足があったこと
申し訳ございませんでした。
内容の整理と事象の内容を具体的に記載させていただきますので、
改めてご教示願います。
また、小林さんに頂いたアドバイスをもとに調査を進め、
新たに分かりました内容も合わせて記述します。
環境:バージョン
apache : 2.2.11
tomcat : 6.0.20
JDK : 1.6.0.19
seasar : 2.4.38
apache ロードバランサを使いtomacat-A/tomcat-Bへクラスタ化構造を作成して
います。
tomacat クラスタの設定については一部抜粋になりますが添付のsever.xmlを参
照ください。
事象:
1.tomcat-Aにて、ログインし、ユーザ情報(UserDto)をDIしセッションへ保存
2.tomcat-Aを停止
3.アプリケーションを操作し、tomcat-Bへ接続する
ここでログイン情報(UserDto)のプロパティがNULLになる
以前、小林さんからご指摘いただいたHttpSessionAttbuteListnerを
アプリ側に実装し、セッションの監視を行ったところ、tomcat-Aを
クライアントから操作した場合、tomcat-Bのログに
HttpSessionAttbuteListnerで実装したログ(セッション共有による
tomcat-Aのセッション情報)が出力されました。
その結果をみると、tomcat-A(クライアントから操作)のログには
UserDto値がセットされているのに対し、tomcat-BのログにはUserDtoの
プロパティがNULLになります
「form.counter」はログイン時にHttpSession#setAttribute("form.counter",
value)と
HttpSession#getAttribute("form.counter")と実装してますが、
tomcat-A/tomcat-B同じものがログに出力されています
※tomcat-A.log/tomcat-B.logをご参照ください
UserDtoに関しては、「implements Serializable」と
「@Component(instance = InstanceType.SESSION)」を行ってます
diconファイルによるComponentの登録も行ってみましたが、
上記と同じ結果となります
tomcatのログに関しても、検証、調査を行いましたが、
原因として該当する箇所が見つけられない状態にあります。
また、ログに関して、再度添付させていただきます。
以前と重複した内容とまた長々と記載させていただきましたが、
もし、お気づきの点がございましたら、ご教授お願いしたいと思います。
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sever.xml
Type: text/xml
Size: 1416 bytes
Desc: 無し
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20090703/09332aa0/attachment.xml>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: TomcatA.log
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20090703/09332aa0/attachment.pl>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: TomcatB.log
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20090703/09332aa0/attachment-0001.pl>
Seasar-user メーリングリストの案内