[Seasar-user:21674] Seasar2のセッションレプリケーションの方法

nemoto [E-MAIL ADDRESS DELETED]
2013年 7月 19日 (金) 12:03:34 JST


名古屋工業大学の根本と申します。
セッションレプリケーションの方法についてお尋ねします。
過去に同一事例と思われるメーリングリストのやりとりを見付けたのですが、
4年ほど経過しているので重複になりましたらご容赦ください。

Seasar2アプリをパフォーマンスの問題からアプリケーションサーバーを
1台から2台に増やし、WEB×1、APP×2、DB×1 のクラスタリング構成にする
設定を行っております。STICKYSESSIONを設定してすでに運用を開始しており、
加えてセッションレプリケーションを行おうとしているのですが、
実機テストでセッション情報の同期がされないことがわかりました。
(接続中のTomcatを停止し、次のアクセスでもう一方の稼働中のTomcatに
振られたとき、必ずログアウトする。)

Tomcatのセッションレプリケーション機能の使用、
セッション変数DTOの存在、対策として示されているsetAttributeを
ひとまずログイン情報保持のDTOに適用したところ、一方のTomcatを
停止してもログインが維持されるようになったことから、
[Seasar-user:17892]と[Seasar-user:17923]の同一事例と考えております。

ここでは (1)DTOのプロパティ変更の都度、HttpSession#setAttribute()で
明示的に同期する (2)DBセッションレプリケーションを使用する
の2つの対策が示されているのですが、セッション変数DTOは20個ほどあり、
修正ミスが起こりやすいと思います。またDBを新たに追加するのも
サーバー構成の変更となり、できるだけ避けたいものです。
現時点でも上記の2つの対策から選ぶしかないのでしょうか。
修正量と修正ミスの起こりにくさから、最適と思われる方法を
お尋ねしたいと思います。

動作環境は以下の通りです。

・CentOS 6.2 (64bit)
・Apache 2.2.15 (AJP接続)
・Java 1.6.0_30-b12
・Tomcat 6.0.35
・s2-framework 2.4.43
・Teeda 1.0.13-sp10
・MySQL 5.1.52
・[ENV]product, [DEPLOY MODE]Cool Deploy

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


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