はじめに
今回はJBossが提供するEJB/JNDI/JMSの機能について解説します。
EJB
JBossではEJBに対してもロードバランス/フェイルオーバーが実現可能ですがEJBの種類によって使用可能な機能や設定が異なってきます。
まず、セッションBeanおよびエンティティBeanに対してクラスタリングを設定します。クラスタリングを有効にするには"jboss.xml"の「clustered」要素にtrueを設定します。
「clustered」要素の設定
SampleEB
SampleEBBean
true
SampleSFSB
SampleSFSBBean
true
(省略) ![]()
ステートレスセッションBean
ステートレスセッションBeanは状態を保持しないため最もシンプルな使用法で、レプリケーションの必要がありません。
ステートレスセッションBeanに対してロードバランス/フェイルオーバーを行う場合、ロードバランスのポリシーは表1に示した3種類から選択できます。
- org.jboss.ha.framework.interfaces.RoundRobin
- ラウンドロビン。アクセスごとにクラスタノードのEJBが順に選ばれ、アクセスされます。
- org.jboss.ha.framework.interfaces.FirstAvailable
- 最初に選んだノードのEJBにアクセスし続けます。
- org.jboss.ha.framework.interfaces.FirstAvailableIdenticalAllProxies
- 最初に選んだノードのEJBにアクセスし続けます。すべてのEJBクライアントが同じクラスタノードのEJBを選びます。
「最初に選ばれるノード」はクラスタノードからランダムに決定されますが、"FirstAvailableIdenticalAllProxies"では最初に選んだノードが選ばれ続けます。
ステートレスセッションBeanのデフォルトポリシーはHomeインターフェースとRemoteインターフェースの両方とも"RoundRobin"です。
ポリシーを変更する場合は"jboss.xml"の「cluster-config」要素に以下のように設定します。
「cluster-config」要素の設定
SampleSLSB
SampleSLSBBean
true
org.jboss.ha.framework.interfaces. FirstAvailable
org.jboss.ha.framework.interfaces. FirstAvailable
(省略) ![]()