セッションフェールオーバ(メモリToメモリ)でセッションデータの不整合が発生する場合があります。

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
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk