[Seasar-user:10720] Re: [Teeda] 1.0.11-RC2 HOT deploy時 TakeOver.EXCLUDEを使うとNotSerializableExceptionが発生

Junichi Kato [E-MAIL ADDRESS DELETED]
2007年 9月 25日 (火) 19:25:12 JST


小林さん,
加藤です.

On Tue, 25 Sep 2007 19:00:30 +0900
Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:

> 小林 (koichik) です.
> 
> Date:    Tue, 25 Sep 2007 17:33:26 +0900
> From:    Junichi Kato <[E-MAIL ADDRESS DELETED]>
> To:       [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:10717] [Teeda] 1.0.11-RC2 HOT deploy時 TakeOver.EXCLUDEを使うとNotSerializableExceptionが発生
> 
> > Teeda 1.0.11-RC2(SNAPSHOTではない)で,HOT deploy時に,
> > TakeOver.EXCLUDEを使うとNotSerializableExceptionが発生します.
> > COOL deployでは問題が発生しませんし,TakeOver.INCLUDEでも発生しません.
> 
> UserCreditCardBhv も EXCLUDE に含めてください.
> そうしないと,UserCreditCardBhv を次画面に
> 引き継ごうとしてセッションに保持してしまいます.
> 
> HOT deploy ではリクエストをまたがると
> クラスローダが異なることに対応するため,
> セッションからオブジェクトを取得する際に
> シリアライズ・デシリアライズを行って,
> 現在のクラスローダでロードされたクラスの
> インスタンスに変換を行います.
> そのため,セッションに格納されるオブジェクトが
> Serializable を実装していないとすぐに例外に
> つながります.
> 
> COOL の場合にはこのような現象は起きにくくなりますが,
> Web コンテナが (メモリ不足等で) セッション情報を
> 外部化する場合や,レプリケーションが使われている
> 場合などは,同じように発生するはずです.
> 
> セッションに保持されるオブジェクトは必ず
> Serializable にしてください.
> Serializable でないオブジェクトはセッションに
> 保持されないようにしてください.
> 
> 具体的には,Page に Dao や Dxo,Bhv 等々のフィールドを
> 持つ場合はそれらのフィールドを transient にして,
> SubApplicationScope や RedirectScope は付けない,
> TakeOver を使う場合は INCLUDE に含めない,EXCLUDE には
> 含める,を徹底してください.

なるほど.よくわかりました.気をつけるようにします.
ありがとうございました.

> 
> > 発生するタイミングは,以下のdoメソッドを抜けた後に発生しています.
> > また,UserCreditCardBhvは,当該ページクラスでフィールドとして
> > 保持しています.
> 
> スタックトレースと説明があってないような?
> 次画面の表示が始まってから発生してるように
> 見えます.

あー,そうでした.すみません.

> 
> 
> --
> <signature>
>    <name>Koichi Kobayashi</name>
>    <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
> </signature>
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user

───────────────────────────────
 株式会社 グランテック
 代表取締役社長
 加藤 潤一 Junichi Kato

〒154-0012
東京都世田谷区駒沢2-16-1 サンドー駒沢ビル4F
TEL 050-5538-2383  FAX 03-3487-7211
HP : http://www.grandtech.jp/
BLOG : http://d.hatena.ne.jp/j5ik2o/
E-MAIL : [E-MAIL ADDRESS DELETED]




Seasar-user メーリングリストの案内