TOP
>
比較データ
> EJBのクラスタリング
Javaアプリケーションサーバのクラスタリング機能比較
第6回:WebLogic Serverが提供するクラスタ機能
著者:
サンモアテック 高木 基成
2005/11/28
前のページ
1
2
3
4
次のページ
EJBのクラスタリング
"weblogic-ejb-jar.xml"でクラスタ化を設定しているEJBをコンパイルすると、EJBHomeインタフェースとEJBObjectインタフェースはレプリカ対応(注)となります。
※注:
レプリカとは、クラスタ内にインスタンス化されているオブジェクトのことです。
レプリカ対応したスタブはルーティングアルゴリズムを指定することにより、ロードバランシングを実現できます。メソッド呼び出しの途中でエラーが発生するとスタブがその例外をハンドリングして、別のレプリカに対して呼び出しを行います。
ラウンドロビンのロードバランシング
クラスタ内のWebLogic Serverインスタンスに対して順番にリクエスト送信します。HTTPサーバのプラグインにもこのアルゴリズムが適用されます。
重みベースのロードバランシング
各サーバに事前に値を割り当て、リクエストの送信頻度をサーバごとに管理できます。クラスタ内の物理サーバのスペックが異なるときに使用します。
ランダム方式のロードバランシング
クラスタ内のサーバインスタンス間で均等にリクエストが送信されます。
表5:ロードバランシングの方法
サーバアフィニティ
WebLogic Server 8.1からはサーバアフィニティという仕組みが導入されて、上記のロードバランシングと組み合わせて利用することができます。このサーバアフィニティを採用することで、クライアントとサーバインスタンスの間で開かれるIPソケットの数を抑えることができます。アフィニティの動作を以下に解説します。
図2:アンフィニティの動作
クライアントがクラスタ内のサーバからコンテキストを取得します
クライアントはそのコンテキストでオブジェクトをルックアップします
クライアントからの接続はコンテキストを取得したサーバと固定されて、移行の呼び出しはサーバAを採用します
次に同じような処理で、クライアントがサーバBとの接続をしています。このとき、サーバBで障害が発生すると、既に接続しているサーバAにオブジェクトBをフェールオーバして処理を継続します
表6:アンフィニティの動作
ステートレスセッションBean
ステートレスセッションBeanは、"weblogic-ejb-jar.xml"にステートが保持されていないことを示すだけで、自動フェールオーバが有効になります。
ステートフルセッションBean
ステートフルセッションBeanはHTTPセッションのレプリケーションと同様のレプリケーション方式を採用して、プライマリのBeanインスタンスのステートをセカンダリのBeanインスタンスにレプリケーションします。トランザクションのあるEJBの場合、トランザクションのコミット直後にレプリケーションされます。トランザクションのないEJBの場合、メソッド呼び出しの直後にレプリケーションされます。
J2EE仕様にあるように、ステートフルセッションBeanはトランザクション非対応です。コミット後のレプリケーション前にプライマリで障害が発生すれば、コミット前の状態にフェールオーバされます。
エンティティBean
読み込み専用エンティティの場合、レプリカに対応したスタブがホームの呼び出しに返されます。このスタブはロードバランシングを行います。回復可能なエラーが発生した時には、自動的にフェールオーバを行われません。
読み書き用エンティティの場合には、ロードバランシングとフェールオーバはホームのみ行われます。
前のページ
1
2
3
4
次のページ
著者プロフィール
株式会社サンモアテック 高木 基成
株式会社サンモアテック 技術開発事業部
2002年入社。システム間連携を実現する各種ミドルウェアの調査・導入に従事。現在、ESBやSOAなどを実現するための新技術検証に携わっている。
INDEX
第6回:WebLogic Serverが提供するクラスタ機能
前回から
サーブレットとJSPのクラスタリング
EJBのクラスタリング
JMSのクラスタリング