Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

12.2.4 グローバルセッションを利用するためのシステム構成要素

ここでは,グローバルセッションを利用するためのシステム構成要素である,次のサーバプロセス,アプリケーションおよびフィルタについて説明します。

SFOサーバアプリケーションは,SFOサーバ上で動作するアプリケーションです。セッションフェイルオーバ用フィルタは,J2EEサーバで動作するJ2EEアプリケーションに設定するサーブレットフィルタです。

<この項の構成>
(1) SFOサーバ
(2) SFOサーバアプリケーション
(3) セッションフェイルオーバ用フィルタ

(1) SFOサーバ

SFOサーバとは,グローバルセッション情報を管理するサーバプロセスです。セッションフェイルオーバ機能を使用するためには,システム内にSFOサーバを配置する必要があります。

●SFOサーバの役割

SFOサーバは,J2EEサーバのJ2EEアプリケーション内で生成されたグローバルセッション情報を管理する機能を持つサーバプロセスです。実体はJ2EEサーバです。

J2EEアプリケーションが稼働しているJ2EEサーバに障害が発生して,J2EEサーバ間でグローバルセッション情報の引き継ぎが必要になると,引き継がれる側のJ2EEサーバは,SFOサーバに対してグローバルセッション情報の取得要求をします。

SFOサーバは,SFOサーバアプリケーションだけを実行するためのJ2EEサーバです。SFOサーバアプリケーション以外のアプリケーションを実行しないでください。

また,SFOサーバでは,SFOサーバアプリケーションを登録するために,CORBAネーミングサービスを使用します。CORBAネーミングサービスはSFOサーバのインプロセスで動作させてください。

SFOサーバの複数配置

SFOサーバに障害が発生すると,SFOサーバ上で管理されているグローバルセッション情報はすべて削除されます。SFOサーバの障害発生に備えて,システム内にSFOサーバを複数配置することもできます。

注※
削除されるのは,書き換え可能グローバルセッション情報です。読み込み専用のグローバルセッション情報は削除されません。書き換え可能,および読み込み専用のグローバルセッション情報については,「12.2.3 グローバルセッション情報」を参照してください。

SFOサーバを複数配置するときの推奨構成
SFOサーバを複数配置する構成では,J2EEサーバごとにSFOサーバを配置するのではなく,J2EEサーバ内のWebアプリケーションごとにSFOサーバを割り当てることをお勧めします。これによって,SFOサーバに障害が発生した場合の影響範囲を,障害が発生したSFOサーバを使用していたWebアプリケーションだけにとどめることができます。配置例を次の図に示します。

図12-8 複数のSFOサーバの配置例

[図データ]
図のように,アプリケーション1のグローバルセッション情報をSFOサーバ1で,アプリケーション2のグローバルセッション情報をSFOサーバ2で管理している場合,SFOサーバ1に障害が発生しても,影響範囲はアプリケーション1だけで済みます。また,ほかのWebアプリケーションに影響を与えることなく,SFOサーバの再起動を伴うWebアプリケーションの設定変更をすることもできます。
SFOサーバでのJ2EEサーバの切断検知

SFOサーバでは,SFOサーバと一度接続したJ2EEサーバについて,切断検知ができます。J2EEサーバの切断は,Stateful Session Beanのタイムアウトで検知できます。J2EEサーバとの接続が切断された場合,デフォルトで最大6分後にJ2EEサーバの切断を検知できます。なお,SFOサーバがJ2EEサーバの切断を検知する前に,一度切断されたJ2EEサーバが,切断前にSFOサーバに格納したセッション情報を取得するためにSFOサーバに再接続することがあります。この場合,SFOサーバでは,J2EEサーバがいったん切断されたことを検知し,再接続をします。

(2) SFOサーバアプリケーション

SFOサーバ上では,SFOサーバで使用するJ2EEアプリケーションが稼働しています。このJ2EEアプリケーションを,SFOサーバアプリケーションといいます。

SFOサーバアプリケーションは,グローバルセッション情報を管理する機能が実装されたアプリケーションです。EJBで実装されています。

SFOサーバアプリケーションはCosminexusで提供しています。SFOサーバをセットアップするときに,SFOサーバアプリケーションをJ2EEサーバにインポートしてください。

ポイント
Smart Composer機能を使用してシステムを構築する場合は,sfo-tierを使用してシステムを構築すると,SFOサーバアプリケーションがSFOサーバに自動的にインポートされます。

(3) セッションフェイルオーバ用フィルタ

セッションフェイルオーバ用フィルタは,J2EE仕様で規定されたjavax.servlet.Filterインタフェースを持つクラスです。J2EEアプリケーションの実行前後に,セッションフェイルオーバ機能で必要な処理を実行します。

セッションフェイルオーバ用フィルタは,セッションフェイルオーバ機能の対象にするJ2EEアプリケーションに追加して使用します。