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