[Seasar-user:14855] Re: [Teeda] 二重サブミットについて

松崎 学 [E-MAIL ADDRESS DELETED]
2008年 6月 27日 (金) 21:00:06 JST


小林さん

松崎です。いつもお世話になっております。

ありがとうございます。
確認が出来ましたらご連絡させていただきます。

> そのため,やはりスティッキーを使用して
> 同じセッションに対するリクエストは常に
> 同じサーバで処理されるようにする方が無難です.
スティッキーは使えないのです。。。

根本的な解決は出来ないという事ですよね。
今回の修正で発生の確率がどのくらい低くなりますか?
ゼロではなくても、ほぼ発生しないのならばうれしいのですが。。。

以上、よろしくお願い致します。

On Fri, 27 Jun 2008 18:00:06 +0900
Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:

> 小林 (koichik) です.
> 
> Date:    Tue, 24 Jun 2008 17:12:37 +0900
> From:    松崎 学 <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:14803] Re: [Teeda] 二重サブミットについて
> 
> > お忙しいところ申し訳ありませんが、修正バージョンよろしくお願い致します。
> 
> SNAPSHOT をデプロイしたのでご確認ください.
> 
> http://maven.seasar.org/maven2-snapshot/org/seasar/teeda/teeda-core/1.0.13-sp2-SNAPSHOT/teeda-core-1.0.13-sp2-20080627.082855-5.jar
> http://maven.seasar.org/maven2-snapshot/org/seasar/teeda/teeda-extension/1.0.13-sp2-SNAPSHOT/teeda-extension-1.0.13-sp2-20080627.082855-5.jar
> http://maven.seasar.org/maven2-snapshot/org/seasar/teeda/teeda-ajax/1.0.13-sp2-SNAPSHOT/teeda-ajax-1.0.13-sp2-20080627.082855-5.jar
> http://maven.seasar.org/maven2-snapshot/org/seasar/teeda/teeda-tiger/1.0.13-sp2-SNAPSHOT/teeda-tiger-1.0.13-sp2-20080627.083235-5.jar
> 
> 
> ウィンドウ ID に乱数を使うようにはしましたが,
> 結局複数のウィンドウからのリクエストを異なった
> サーバで並行に処理すると,情報を失う可能性が
> あります.
> 現在の Teeda はサブアプリケーションスコープ等の
> 情報を次のような構造の Map で管理しています.
> 
> subapp = {
>   null = {key=value, key=value,...}
>   wid1 = {key=value, key=value,...}
>   wid2 = {key=value, key=value,...}
> }
> 
> subapp という大きな Map が HTTP セッションに
> 保存され,その中にウィンドウごとの Map が
> 保持されます.
> もし複数のウィンドウからのリクエストを異なった
> サーバで並行に処理すると,サーバ A では
> デフォルトのウィンドウからのリクエストを処理して
> 
> subapp = {
>   null = {key=AAAAA, key=BBBBB,...}
>   wid1 = {key=value, key=value,...}
>   wid2 = {key=value, key=value,...}
> }
> 
> となり,サーバ B では wid1 のリクエストを
> 処理して
> 
> subapp = {
>   null = {key=value, key=value,...}
>   wid1 = {key=AAAAA, key=BBBBB,...}
>   wid2 = {key=value, key=value,...}
> }
> 
> となったりします.
> リクエストの処理後,それぞれのサーバで
> この Map がセッション情報に保存されると,
> 先に保存した方の変更が失われます.
> 
> そのため,やはりスティッキーを使用して
> 同じセッションに対するリクエストは常に
> 同じサーバで処理されるようにする方が無難です.
> 
> ウィンドウ Id を上位のキーとして,
> 
> wid1 = {
>   page = {key=value, key=value,...}
>   subapp = {key=value, key=value,...}
>   redirect = {key=value, key=value,...}
> }
> wid2 = {
>   page = {key=value, key=value,...}
>   subapp = {key=value, key=value,...}
>   redirect = {key=value, key=value,...}
> }
> 
> のようにすることも考えたのですが,ウィンドウ数の
> 上限 (現在のデフォルトは 20 ) を管理するのが
> 難しく,それに対処しようとすると結局スティッキー
> セッションが必要になってしまって本末転倒という
> 感じなので,現状のままにしたいと思います.
> 
> 
> -- 
> <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-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user

--
松崎 学 <[E-MAIL ADDRESS DELETED]>



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