3.7.3 CORBAネーミングサービスを利用した負荷分散(Session BeanとEntity Beanの場合)
アクセスポイントになるコンポーネントがSession BeanまたはEntity Beanの場合に,J2EEサーバ内(インプロセス)のCORBAネーミングサービスのラウンドロビン検索機能を使用して負荷を分散する構成について説明します。
(1) システム構成の特徴
J2EEサーバ上で動作するアプリケーションのアクセスポイントが,Session BeanまたはEntity Beanの場合に使用できる構成です。クライアントは,EJBクライアントアプリケーションです。EJBクライアントアプリケーションは,システムプロパティに登録した論理ネーミングサービスから,オブジェクトリファレンスをラウンドロビン方式でルックアップすることで,リクエストの振り分け先を分散します。ただし,それぞれのJ2EEサーバでは同じ名前(同じ別名)でSession BeanおよびEntity Beanを開始しておく必要があります。
なお,EJBクライアントアプリケーションは,ラウンドロビン方式でJ2EEサーバ内のネーミングサービスをルックアップしたあと再度ネーミングサービスをルックアップするまでの間は,同じJ2EEサーバにアクセスします。
Session BeanとEntity Beanを対象にした負荷分散の構成の例を次の図に示します。
これ以外の凡例については,「3.2 システム構成の説明について」を参照してください。
- 特徴
-
-
Session BeanとEntity Beanのスケーラビリティと可用性を確保できます。
-
アプリケーションサーバを複数用意して,EJBクライアントからラウンドロビン方式でCORBAネーミングサービスを選択してアクセスすることで,負荷を分散できます。
-
特定のアプリケーションサーバでトラブルが発生した場合,またはメンテナンスが必要な場合,EJBクライアントアプリケーションでは,J2EEサーバの終了を検出したあと,該当するアプリケーションサーバにアクセスしません。このため,システムの縮退運転ができます。
-
- リクエストの流れ
-
アクセスポイントであるJ2EEサーバ上のSession BeanとEntity Beanへのリクエストは,EJBクライアントアプリケーションから送られます。その際,EJBクライアントアプリケーションでは,J2EEサーバ内のネーミングサービスをラウンドロビン方式で選択して,オブジェクトリファレンスをルックアップします。
(2) それぞれのマシンに必要なソフトウェアと起動するプロセス
CORBAネーミングサービスを使用して負荷を分散する場合にそれぞれのマシンに必要なソフトウェアと起動するプロセスは,Session BeanとEntity Beanをアクセスポイントにする構成と同じです。「3.4.3 Session BeanとEntity Beanをアクセスポイントに使用する構成」を参照してください。