Javaアプリケーションサーバのクラスタリング機能比較 7

EJBのロードバランス

EJBのロードバランス

ここでは、JBoss・WebLogic ServerにおけるEJBのロードバランシングを比較します。両アプリケーションサーバがサポートしているロードバランシングの方式には、以下のような違いがあります。


アプリケーション
サーバ
EJBの種別 ロードバランシングの方式
JBoss ステートレスセッションBean
  • ラウンドロビン
  • FirstAvailable
  • FirstAvailableIdenticalAllProxies
ステートフルセッションBean
エンティティBean
WebLogic ステートレスセッションBean
  • ラウンドロビン
  • 重みベース
  • ランダム
  • アフィニティ + ラウンドロビン
  • アフィニティ + 重みベース
  • アフィニティ + ランダム
ステートフルセッションBean
エンティティBean
表6:EJBのロードバランスの比較

JBossはどの種類のEJBを利用しても、HomeインターフェースとRemoteインターフェースの両方に対して、サポートしているすべてのロードバランシングの方式を設定することができます。WebLogic Serverは、Homeインターフェースに対してはサポートしているすべてのロードバランシング方式を設定できます。

「アフィニティ+ラウンドロビン」方式を選択すると、アフィニティが外部Javaクライアントとサーバインスタンスの接続を管理して、サーバインスタンス間の接続には、ラウンドロビンが使用されます。

EJBのフェイルオーバー

ここでは、JBoss・WebLogic ServerにおけるEJBのレプリケーションを比較します。ステートレスセッションBeanはレプリケーションの必要がないので、ステートフルセッションBeanの機能比較を行います。

ステートフルセッションBean

JBossのステートフルセッションBeanは、EJBコンテナがisModifiedメソッドを呼び出したときに、trueがreturnされるとレプリケーションを行います。このisModifiedメソッドを実装することで、レプリケーションの発生をコントロールできます。すべてのメンバ変数がレプリケーションの対象となります。

WebLogic ServerのステートフルセッションBeanは、トランザクションのあるEJBの場合、コミット直後にレプリケーションされます。トランザクションのないEJBの場合、メソッド呼び出しの直後にレプリケーションされます。変更されたメンバ変数だけがレプリケーションの対象となる(差分)ので、通信コスト を抑えることが可能です。

ステートフルセッションBeanのレプリケーションにおいても、JBossは細かい設定が可能です。ただし、一般的なニーズを考慮すれば、WebLogic Serverの機能だけで十分と思われます。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る