3.2.6. クラスタリングの変更
3.2.6.1. クラスタリングに対するアプリケーションの変更
手順3.22
クラスタリグが有効な状態で JBoss Enterprise Application Platform 6 を起動する
JBoss Enterprise Application Platform 5.x でクラスタリングを有効にするには、次のようにall
プロファイル (またはその派生プロファイル) を使用してサーバーインスタンスを起動する必要がありました。$ EAP5_HOME/bin/run.sh -c all
JBoss Enterprise Application Platform 6 でクラスタリングを有効にする方法は、サーバーがスタンドアロンであるか管理ドメインで実行されているかによって異なります。管理ドメインで実行されているサーバーに対してクラスタリングを有効にする
ドメインコントローラーを使用して起動したサーバーに対してクラスタリングを有効にするには、domain.xml
を更新し、ha
プロファイルとha-sockets
ソケットバインディンググループを使用するサーバーグループを指定します。例は次の通りです。<server-groups> <server-group name="main-server-group" profile="ha"> <jvm name="default"> <heap size="64m" max-size="512m"/> </jvm> <socket-binding-group ref="ha-sockets"/> </server-group> </server-group>
スタンドアロンサーバーに対してクラスタリングを有効にする
スタンドアロンサーバーに対してクラスタリングを有効にするには、次のように適切な設定ファイルを使用してサーバーを起動します。$ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml
バインドアドレスの指定
JBoss Enterprise Application Platform 5.x では、通常$ EAP_HOME/bin/run.sh -c all -b 192.168.0.2
のように-b
コマンドライン引数を用いてクラスタリングに使用するバインドアドレスを指定しました。JBoss Enterprise Application Platform 6 では、JBoss Enterprise Application Platform 6 の設定ファイル内の関連するソケットバインディングによってバインドアドレスが明示的に定義されます。ドメインコントローラーを用いて起動したサーバーの場合、バインドアドレスはdomain/configuration/host.xml
ファイル内で指定されます。スタンドアロンサーバーの場合、バインドアドレスはstandalone-ha.xml
ファイル内で指定されます。<interfaces> <interface name="management"> <inet-address value="192.168.0.2"/> </interface> <interface name="public"> <inet-address value="192.168.0.2"/> </interface> </interfaces>
<socket-binding-groups> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- ... --> </socket-binding-group> </socket-binding-groups>
上記の例では、ha-sockets
ソケットバインディンググループ内のすべてのソケットに対するデフォルトインターフェースにpublic
インターフェースが指定されています。マルチキャストアドレスおよびポートの指定
JBoss Enterprise Application Platform 5.x では、次のようにコマンドライン引数-u
を使用してクラスター内の通信に使用されるマルチキャストアドレスを指定することができました。 同様に、引数-m
を使用してクラスター内の通信に使用されるポートを指定することができました。$ EAP_HOME/bin/run.sh -c all -u 228.11.11.11 -m 45688
JBoss Enterprise Application Platform 6 では、クラスター間の通信に使用されるマルチキャストアドレスとポートは、関連する JGroups プロトコルスタックによって参照されるソケットバインディングによって次のように定義されます。<subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp"> <stack name="udp"> <transport type="UDP" socket-binding="jgroups-udp"/> <!-- ... --> </stack> </subsystem>
<socket-binding-groups> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- ... --> <socket-binding name="jgroups-udp" port="55200" multicast-address="228.11.11.11" multicast-port="45688"/> <!-- ... --> </socket-binding-group> </socket-binding-groups>
コマンドラインでマルチキャストアドレスとポートを指定したい場合、マルチキャストアドレスとポートをシステムプロパティーとして定義した後、サーバー起動時にこれらのプロパティーをコマンドライン上で使用します。次の例では、jboss.mcast.addr
はマルチキャストアドレスの変数名、jboss.mcast.port
はポートの変数名になります。<socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.mcast.addr:230.0.0.4}" multicast-port="${jboss.mcast.port:45688}"/>
その後、次のコマンドライン引数を使用してサーバーを起動できます。$ EAP_HOME/bin/domain.sh -Djboss.mcast.addr=228.11.11.11 -Djboss.mcast.port=45688
代替のプロトコルスタックの使用
JBoss Enterprise Application Platform 5.x では、jboss.default.jgroups.stack
システムプロパティーを使用してすべてのクラスタリングサービスに使用されるデフォルトのプロトコルスタックを操作することができました。$ EAP_HOME/bin/run.sh -c all -Djboss.default.jgroups.stack=tcp
JBoss Enterprise Application Platform 6 では、domain.xml
またはstandalone-ha.xml
内の JGroups サブシステムによってデフォルトのプロトコルスタックが定義されます。<subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp"> <stack name="udp"> <!-- ... --> </stack> </subsystem>