Communications Server は JMS 接続プールとフェイルオーバーをサポートします。Sun GlassFish Communications Server は JMS 接続を自動的にプールします。「アドレスリストの動作」属性が random (デフォルト) である場合、Communications Server は主ブローカを JMS ホストリストからランダムに選択します。フェイルオーバーが発生すると、MQ は負荷を別のブローカに透過的に転送し、JMS セマンティクスを保持します。JMS タイプが LOCAL タイプの場合、「アドレスリストの動作」属性のデフォルト値は priority です。
接続が失われたときに Communications Server が主ブローカへの再接続を試行するかどうかを指定するには、「再接続」チェックボックスを選択します。再接続を有効に設定した状態で、主ブローカが停止すると、Communications Server は JMS ホストリストにある別のブローカへの再接続を試みます。
「再接続」を有効にする場合には、以下の属性も指定します。
アドレスリストの動作: 接続を、JMS ホストリスト内のアドレスの順序 (priority) とランダムな順序 (random) のどちらで行うかを指定します。Priority に設定すると、Java Message Serviceは JMS ホストリストの最初に指定された MQ ブローカに接続を試行し、そのブローカが利用できない場合にのみ別のブローカを使用します。Random に設定すると、Java Message Serviceは JMS ホストリストから MQ ブローカをランダムに選択します。多数のクライアントが同じ接続ファクトリを使用して接続を試行する場合は、すべてのクライアントが同じアドレスに接続しないようにこの設定を使用します。
アドレスリストの繰り返し: 接続の確立または再確立のために、JMS ホストリストを介して Java Message Service が試行を繰り返す回数です。値 -1 は試行回数が無制限であることを示します。
再接続試行: クライアントランタイムがリストの次のアドレスを試行する前に、JMS ホストリストに指定した各アドレスへの接続 (または再接続) を試行する回数を指定します。値 -1 は、再試行回数が無制限であることを示します。クライアントランタイムは、接続が成功するまで最初のアドレスへの接続を試みます。
再接続間隔: 再接続を試行する間隔を秒数で指定します。これは、JMS ホストリストで指定した各アドレスおよびリストのそれ以降のアドレスへの試行に適用されます。間隔が短すぎると、ブローカにリカバリする時間が与えられません。間隔が長すぎると、再接続が許容できない遅延を示す場合があります。
これらの設定は、JMS 接続ファクトリ設定を使用してオーバーライドできます。詳細は、『Sun GlassFish Communications Server 1.5 管理ガイド』の「JMS 接続ファクトリ」を参照してください。
メッセージ駆動型 Bean の sun-ejb-jar.xml ファイル内の activation-config-property 要素を使用して、jmsra リソースアダプタの ActivationSpec プロパティーを設定できます。メッセージ駆動型 Bean (EndPointFactory) が配備されるたびに、コネクタランタイムエンジンがこれらのプロパティーを検出し、それに従ってリソースアダプタ内でそれらのプロパティーを設定します。『Sun GlassFish Communications Server 1.5 Application Deployment Guide』の「activation-config-property」を参照してください。
Communications Server はメッセージが同じ ClientID を持つメッセージ駆動型 Bean にランダムに配信されることを透過的に有効にします。ClientID は永続的なサブスクライバには必須です。
ClientID が設定されない非永続サブスクライバに対しては、同じトピックをサブスクライブする特定のメッセージ駆動型 Bean のすべてのインスタンスは同等であると見なされます。メッセージ駆動型 Bean が Communications Server の複数のインスタンスに配備される場合、メッセージ駆動型 Bean のうちの 1 つだけがメッセージを受信します。複数の異なるメッセージ駆動型 Bean が同じトピックをサブスクライブすると、メッセージ駆動型 Bean ごとに 1 つのインスタンスがメッセージのコピーを受信します。
同じキューを使用する複数のコンシューマをサポートするには、物理送信先の maxNumActiveConsumers プロパティーを大きい値に設定します。このプロパティーを設定すると、Sun メッセージキュー ソフトウェアは、プロパティーに設定した数までのメッセージ駆動型 Bean が同じキューからメッセージを消費することを許可します。メッセージはそれらのメッセージ駆動型 Bean にランダムに配信されます。maxNumActiveConsumers を -1 に設定した場合は、コンシューマの数に制限はありません。
ローカル配信が優先されることを保証するには、addresslist-behavior を priority に設定します。この設定は、AddressList 内の最初のブローカが最初に選択されることを指定します。この最初のブローカは、ローカルで共存する メッセージキュー インスタンスです。このブローカが利用できない場合、AddressList 内で列挙されている順序でブローカへの接続試行が行われます。この設定は、クラスタに属する Communications Server インスタンスに対するデフォルトです。
クラスタ化機能は開発者プロファイルでは利用できません。プロファイルの詳細については、『Sun GlassFish Communications Server 1.5 管理ガイド』の「プロファイル」を参照してください。