[seasar-dev:1123] Re: Seasar2.4.40のCONTAINER-399
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 11月 26日 (木) 22:00:00 JST
小林 (koichik) です.
Date: Thu, 26 Nov 2009 16:09:46 +0900
From: jun funakura <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [seasar-dev:1122] Seasar2.4.40のCONTAINER-399
> Seasar2.4.40のリリースにある、以下の問題ですが
> ログが出力されなくなった事は改善されているのですが
> 修正の元となった、[Seasar-user:18506]にあるエラー(データ取得時にエラー)
> になるのは変わっていません。
元質問者からの返事が来なくなったので
とりあえずログの出力を止めただけで放置しました.
ログメッセージ自体はどうでもいい内容なので.
> BlazeDSでは、HttpSessionベースのFlexSessionというのをもっていて、
> クライアント単位にIDを割り振って管理しているようです。
>
> HotDeploy環境下で二回目以降にアクセスがあると、HttpSessionに
> 複数のFlexSessionIDが付与された状態になってしまい、sessionをinvalidateして
> 処理しクライアント側にfault(いわゆるエラー)を返してしまうという状況です。
HOT deploy で HttpSession の内容をシリアライズ・
デシリアライズしているのが BlazeDS と合わないようです.
っていうか,BlazeDS って HttpSession に
HttpFlexSession を突っ込んでいるのですが,
HttpFlexSession は HttpSession をフィールドで
持っているという...
それがシリアライズ・デシリアライズされて
元は一つだった HttpFlexSession が複数になり,
DuplicateSessionDetected と判定されてしまうようです.
こんなことして分散環境でちゃんと動くの? って疑問に
思ったら,案の定 GAE/J ではよく知られているようで,
http://prepro.wordpress.com/2009/05/17/googleappengineでblazeds環境を構築してみた/
などに書いてあるように,BaseHTTPEndpoint の
duplicateSessionDetected のチェックを削除したり
してるのですね.
たぶん COOL deploy でも DbSession との組み合わせでは
同じような対応をしないと動かないんじゃないかな?
と思って試してみたらやっぱり動かない.
なので,Seasar2 側で回避するより,修正した BlazeDS の
Jar を Dolteng にバンドルする方がいいのではないかと.
月曜日に Dolteng 0.39.0 をリリースしたいので,
この土日を確認期間にしたいのですが,それまでに
対応できますか?
--
<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-dev メーリングリストの案内