ここでは,リクエスト実行時のグローバルセッションの作成,更新,削除およびグローバルセッションの引き継ぎについて説明します。
Webアプリケーション内で処理が実行されると,処理の延長でグローバルセッション情報に対しての処理が発生します。Webアプリケーション内で実行される処理の例と,例に対応したリクエスト実行時のグローバルセッション情報に対して実行される処理,および参照先を次の表に示します。
表7-14 Webアプリケーション内での処理の例とグローバルセッション情報に対して実行される処理の対応
項番 | Webアプリケーション内で実行される処理の例 | グローバルセッション情報に対して実行される処理 | 参照先 |
---|---|---|---|
1 | ログイン | グローバルセッション情報の作成 | (1) |
2 | 業務の実行(ページ遷移/更新) | グローバルセッション情報の更新 | (2) |
3 | ログアウト | グローバルセッション情報の削除 | (3) |
4 | タイムアウトによるログアウト | 有効期限切れによるグローバルセッション情報の削除 | 7.3.3 |
5 | グローバルセッションを引き継いだ別のJ2EEサーバでの業務の実行 (J2EEサーバでの障害発生時) | グローバルセッション情報を使用したセッション情報の引き継ぎ | (4) |
グローバルセッション情報操作中に障害が発生した場合の処理結果については,「7.3.4 グローバルセッション情報操作中の障害発生時の動作」を参照してください。
J2EEサーバ上で新規にHTTPセッションが作成されると,EADsサーバ上にグローバルセッション情報が作成されます。
グローバルセッション情報の作成で実行される処理の流れを次の図に示します。
図7-4 グローバルセッション情報の作成(EADsセッションフェイルオーバ機能)
Webアプリケーション実行中にセッションが更新されると,J2EEサーバでHTTPセッションが更新されます。それに伴って,EADsサーバ上のグローバルセッション情報も更新されます。
グローバルセッション情報の更新で実行される処理の流れを次の図に示します。
図7-5 グローバルセッション情報の更新(EADsセッションフェイルオーバ機能)
Webアプリケーション内でのセッションの削除処理でjavax.servlet.http.HttpSessionインタフェースのinvalidate()メソッドを実装し,明示的にHTTPセッションを削除すると,その処理の延長でEADsサーバ上のグローバルセッション情報が削除されます。
グローバルセッション情報の削除で実行される処理の流れを次の図に示します。
図7-6 グローバルセッション情報の削除(EADsセッションフェイルオーバ機能)
受信したリクエストに関連づけられたHTTPセッションがJ2EEサーバ上に存在しない場合,EADsサーバ上のグローバルセッション情報を使用してHTTPセッションが再作成されます。これによって,Webアプリケーションでは,前回リクエスト処理を終了した時点の内容と同等のHTTPセッションが取得でき,業務を継続できます。
グローバルセッション情報を使用したセッション情報の引き継ぎで実行される処理の流れを次の図に示します。
図7-7 グローバルセッション情報を使用したセッション情報の引き継ぎ(EADsセッションフェイルオーバ機能)
注※ ただし,使用状況が“NEW”(HTTPセッションの属性情報が格納されていない)または“SERIALIZE_FAIL”(前のリクエストでHTTPセッションのシリアライズに失敗している)の場合は,グローバルセッション情報が引き継がれません。
なお,グローバルセッション情報の引き継ぎに成功した場合,KDJE34424-Iのメッセージがメッセージログに出力されます。クライアントから受信したセッションIDに対応するグローバルセッション情報がEADsサーバ上のセッション情報キャッシュに存在しないためにグローバルセッション情報の引き継ぎができなかった場合,KDJE34426-Wのメッセージがメッセージログに出力されます。