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