[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 メーリングリストの案内