Interstage Application Server 高信頼性システム運用ガイド
目次 索引 前ページ次ページ

第3章 Traffic Directorを利用した負荷分散

3.1 プログラミング設計

■サーバ側の設計

 特に留意点はありません。

■クライアント側の設計

 負荷分散方式ごとに説明します。

■アプリケーションの負荷分散

EJBアプリケーション

【メソッド呼出し単位の負荷分散】

 EJBアプリケーションでメソッド呼出し単位の負荷分散を使用する場合において、負荷分散されるタイミングと、クライアント側のプログラミングの留意点について説明します。

【負荷分散されるタイミング】

 負荷分散対象サーバは、Homeインタフェースのメソッドが実行されたタイミングで決定されます。HomeインタフェースのメソッドでEJB objectを取得し、EJB objectに対して処理を実行すると、Homeインタフェースのメソッドが割り振られたサーバで処理が実行されます。

 Session Beanを呼び出す場合の処理において、createメソッドを実行後、Remoteインタフェースのremoveメソッドを実行するまで、同一のサーバに振り分けることが保証されます。createメソッドからremoveメソッド間に発行されるビジネスメソッドは常に同一のサーバに割り振られます。

【プログラミングの留意点】

 “負荷分散されるタイミング”で説明したように、以下のようにプログラミングされたクライアントアプリケーションでは負荷分散されません。

 したがって、新規に処理を実行する場合は、createメソッドから再実行し、処理が分散されるようにプログラミングしてください。

CORBAアプリケーション

【ネーミングサービスのオブジェクトリファレンス獲得時点の負荷分散】

 クライアントから呼び出すオブジェクトの振り分け先サーバは、ネーミングサービスのオブジェクトリファレンスの獲得時に決定します。オブジェクトのオブジェクトリファレンスは、獲得したネーミングサービスのオブジェクトリファレンスを使用して獲得するため、クライアントがネーミングサービスのオブジェクトリファレンスの獲得を再実行するまでは、クライアントからのオブジェクト呼出しは、同じサーバに振り分けられることになります。
 振り分け先のサーバが停止した場合の再振り分けや、停止していたサーバが復旧した場合の切り戻しなどを行うため、クライアントアプリケーションは以下のように作成することをお勧めします。

【例外処理】

 Traffic Directorと連携した通信においては通常発生しうる例外に加え、Traffic Director特有の以下の例外が返る場合があります。

 上記のマイナーコードは、Traffic Directorにおいて異常を検出した場合に復帰します。(負荷分散対象のサーバがすべて停止した場合や、Traffic Directorで通信時の異常を検出した場合など。)
 詳細については“メッセージ集”の“CORBAサービスのマイナーコード”を参照してください。


 以下の機能は使用することができません。

使用できない機能

使用した場合の動作

CORBAアプリケーション情報定義ファイルにiswitch=ONを指定した運用

CORBAアプリケーション情報定義ファイルにiswitch=ONを指定した運用は動作しません。Traffic Directorにより振り分けられます。

コンポーネントトランザクションサービスのプロセスバインド機能

プロセスバインド機能は動作しません。Traffic Directorにより振り分けられ、クライアントアプリケーションにマイナーコード10007が復帰します。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005