intra-mart WebPlatform(Resin)を使用した環境において、セッションフェールオーバ(メモリToメモリ)の機能を使用した場合セッションデータの不整合が発生する場合がございます。
上記問題はResin3.1.xでは修正されません。
(Resin3.0.xにおいても修正されません)
<条件>
2つのResinが動作しています。
これをそれぞれApp-A, App-Bとします。
それぞれには、以下が設定されています。
//--------------------------------
<server id="app-a" host="192.168.0.1" port="6802"/>
<server id="app-b" host="192.168.0.2" port="6802"/>
<persistent-store type="cluster">
<init path="cluster"/>
</persistent-store>
.
.
.
<web-app xmlns="http://caucho.com/ns/resin">
<session-config>
<use-persistent-store="true"/>
</session-config>
</web-app>
//--------------------------------
この状態で、以下の処理シーケンスを実行します。
- 1: BrowserX より Request1 を送信
-- 1-1: App-Aで処理される
-- 1-2: Session#setAttribute("key", "value_1-2")を実行
- 2: App-A を停止
- 3: BrowserX より Request2 を送信
-- 3-1: App-Bで処理される (App-Aがダウンしているため) <-- OK:期待する動作
-- 3-2: Session#getAttribute("key")を実行. "value_1-2"を取得 <-- OK:期待する動作
-- 3-3: Session#setAttribute("key", "value_3-3")を実行
- 4. App-A を起動開始
- 5: BrowserX より Request3 を送信
-- 5-1: App-Bで処理される (App-Aが起動中のため) <-- OK:期待する動作
-- 5-2: Session#getAttribute("key")を実行. "value_3-3"を取得 <-- OK:期待する動作
-- 5-3: Session#setAttribute("key", "value_5-3")を実行
- 6. App-A の起動が完了
- 7: BrowserX より Request3 を送信
-- 7-1: App-Aで処理される (App-Aの起動が完了したため) <-- OK:期待する動作
-- 7-2: Session#getAttribute("key")を実行.
"value_3-3"が取得される<--*****NG********
-- 対象 ------------------------------------------------------------------------
iWP/Webシステム構築基盤/WebPlatform/AppFramework
--------------------------------------------------------------------------------
FAQID:318
セッションフェールオーバ(メモリToメモリ)でセッションデータの不整合が発生する場合があります。
