Cosminexus 機能解説

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

22.3.4 系切り替え時のシステムの動作

系切り替え時のシステムの動作について説明します。

<この項の構成>
(1) HTTPのセッション情報の引き継ぎ
(2) EJBのセッション情報の引き継ぎ
(3) トランザクション情報の引き継ぎ
(4) 運用管理エージェントの動作
(5) 性能解析トレースで出力するキー情報

(1) HTTPのセッション情報の引き継ぎ

セッションフェイルオーバ機能を使用しない場合,Webコンテナが管理しているHTTPのセッション情報※1およびServletContextに設定したアトリビュート情報※2は,J2EEサーバのメモリ中にしかなく,これらの情報は,実行系と待機系との間で共有されません。系の切り替え実施後,HTTPのセッション情報は失われます。このため,すでにセッションを開始していたWebアプリケーションおよびWebクライアントでは,不正な動作をするおそれがあります。これを防止するため,アプリケーションで,セッション情報に矛盾が発生した場合に適切に対処できるようにしておく必要があります。

セッションフェイルオーバ機能を使用する場合,系切り替え後もHTTPセッション情報を維持できます。ただし,維持できるのはセッションフェイルオーバ機能で引き継ぎの対象としたセッション情報だけです。

なお,系切り替え後もセッションを維持するためには,セッションをDBMSなどで管理するようにアプリケーション側で独自に設定し,実行系および待機系の両方から参照できるようにする必要があります。

注※1
javax.servlet.http.HttpServletRequest#getSessionメソッドで取得した,javax.servlet.http.HttpSessionオブジェクトに格納している情報を指します。

注※2
javax.servlet.ServletContext#getServletContextメソッドで取得した,javax.servlet.ServletContextオブジェクトに格納している情報を指します。

(2) EJBのセッション情報の引き継ぎ

EJBコンテナが管理しているセッション情報は,J2EEサーバのメモリ中にしかないため,系の切り替え実施後はセッション情報が失われます(実行系と待機系の間で,セッション情報は共有されません)。このため,すでにセッションを開始していたEJBクライアントでは,正常に動作を継続できないおそれがあります。セッション情報が失われた場合は,Homeのlookupからやり直すように,EJBクライアントを設計する必要があります。

なお,CTM環境でも同様の問題が起こります。

注※
ホームインタフェース,およびコンポーネントインタフェースのオブジェクト情報を指します。

(3) トランザクション情報の引き継ぎ

トランザクション情報の引き継ぎはトランザクションの種類によって異なります。トランザクション情報の引き継ぎについて,ローカルトランザクションの場合とグローバルトランザクションの場合を説明します。

(a) ローカルトランザクションの場合

ローカルトランザクションの場合,系の切り替え時にはトランザクション情報は引き継がれません。

システムの障害によってダウンした場合や,J2EEサーバのプロセスダウンによって系の切り替えが発生した場合は,開始中のトランザクションは,コミットおよびロールバックのどちらも実施されません。

なお,計画系切り替えのように,J2EEサーバが正常に終了する場合は,トランザクションが開始中の状態で残ることはありません。

(b) グローバルトランザクションの場合

グローバルトランザクションの場合,系切り替え後に引き継いだトランザクションを使用して,J2EEサーバの起動時に,トランザクションの回復処理をします。これによって,コミットまたはロールバックのどちらかの適切な処理が実施されます。

(4) 運用管理エージェントの動作

運用管理エージェントでは,実行系と待機系の間で直接情報を引き継ぐことはありません。系切り替え後には,運用管理エージェントの起動スクリプト中に記述した論理サーバが起動されます。なお,運用管理エージェントの起動スクリプトについては,マニュアル「Cosminexus システム構築ガイド」を参照してください。

(5) 性能解析トレースで出力するキー情報

性能解析トレースの出力する情報には,一連の処理を識別するためのキー情報が付与されています。このキー情報には,作成時のIPアドレスが含まれます。IPアドレスを複数持つホストの場合,キー情報には,そのホストの持つIPアドレスのどれか一つが含まれます。このため,実行系のホストで出力された性能解析トレースには,キー情報として,ステーショナリIPアドレス(系切り替えによって他系へ移動しないIPアドレス)が含まれたり,エイリアスIPアドレス(クラスタソフトウェアによって動的に割り当てられるIPアドレス)が含まれたりする場合があります。これによって,系の切り替え前と切り替え後とで,キー情報に含まれるIPアドレスが変わる可能性があることに留意してください。

なお,性能解析トレースで出力するキー情報については,「17.10.2 性能解析トレースの仕組み」を参照してください。