以下の場合に、IPCOMを利用した負荷分散構成を適用することができます。
非同期アプリケーション連携実行基盤の場合
業務処理開始アプリケーションをEJBで作成し、かつ業務処理開始アプリケーションを適用するIJServerのタイプが“EJBアプリケーションのみ運用”である場合
同期アプリケーション連携実行基盤の場合
クライアントアプリケーションをEJBで作成し、かつクライアントアプリケーションを適用するIJServerのタイプが“EJBアプリケーションのみ運用”である場合
クライアントアプリケーションをCORBAで作成した場合
負荷分散の方式については、以下から選択することができます。
均等に分散(ラウンドロビン)
静的な重み付け
サーバ負荷(最小クライアント数)
サーバ負荷(最小CPU、メモリ、DISK I/O負荷)
業務処理開始アプリケーションまたはクライアントアプリケーションをEJBアプリケーションとして作成し、メソッド呼び出し単位の負荷分散を使用する場合において、負荷分散されるタイミングと、クライアント側のプログラミングの留意点について説明します。
注意
負荷分散対象サーバ側のアプリケーション(サーバアプリケーション)については、IPCOMによる負荷分散処理後に動作するため、サーバアプリケーションのプログラムでは負荷分散に対する考慮は必要ありません。
以下のケースについては、一般的なWebアプリケーションの負荷分散と同様の扱いになります。IPCOMのマニュアルを参照し、負荷分散のための環境設定を行ってください。
業務処理開始アプリケーションまたはクライアントアプリケーションをServletとして作成し、Webサーバ-IJServer間で負荷分散を行う場合
業務処理開始アプリケーションまたはクライアントアプリケーションの種類に関わらず、業務処理開始アプリケーションまたはクライアントアプリケーションを呼び出すWebサーバを負荷分散対象サーバとして、負荷分散を行う場合
■負荷分散されるタイミング
負荷分散対象サーバは、Homeインタフェースのメソッドが実行されたタイミングで決定されます。HomeインタフェースのメソッドでEJBオブジェクトを取得し、EJBオブジェクトに対して処理を実行すると、Homeインタフェースのメソッドが割り振られたサーバで処理が実行されます。
Session Beanを呼び出す場合の処理において、createメソッドを実行後、Remoteインタフェースのremoveメソッドを実行するまで、同一のサーバに振り分けることが保証されます。createメソッドからremoveメソッド間に発行されるビジネスメソッドは常に同一のサーバに割り振られます。
■プログラミングの留意点
“負荷分散されるタイミング”で説明したように、以下のようにプログラミングされたクライアントアプリケーションでは負荷分散されません。
createメソッドを1回実行して、その後の処理は同一EJBオブジェクトに対して処理を実行する。
したがって、新規に処理を実行する場合は、createメソッドから再実行し、処理が分散されるようにプログラミングしてください。