Red Hat Training
A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform
18.8.10. JMS ブリッジの設定
HornetQ には、完全に機能する JMS メッセージブリッジが含まれています。このブリッジの機能は、ソースキューまたはトピックからメッセージを消費し、通常は別のサーバーにあるターゲットキューまたはトピックに送信することです。
ソースやターゲットサーバーは同じクラスターにある必要はないため、ブリッジングは異なるクラスターの間 (WAN など) や接続が信頼できない場所でメッセージを確実に送信するのに適しています。
ブリッジは、HornetQ スタンドアロンサーバーまたは JBoss AS インスタンス内部を使用してスタンドアロンアプリケーションとしてデプロイできます。ソースとターゲットは同じ仮想マシンまたは別の仮想マシンに置くことができます。
例18.7 JMS ブリッジの設定例
この例の値は、このトピックの残りを説明するために使用されます。
<subsystem> <subsystem xmlns="urn:jboss:domain:messaging:1.3"> <hornetq-server> ... </hornetq-server> <jms-bridge name="myBridge"> <source> <connection-factory name="ConnectionFactory"/> <destination name="jms/queue/InQueue"/> </source> <target> <connection-factory name="jms/RemoteConnectionFactory"/> <destination name="jms/queue/OutQueue"/> <context> <property key="java.naming.factory.initial" value="org.jboss.naming.remote.client.InitialContextFactory"/> <property key="java.naming.provider.url" value="remote://192.168.40.1:4447"/> </context> </target> <quality-of-service>AT_MOST_ONCE</quality-of-service> <failure-retry-interval>1000</failure-retry-interval> <max-retries>-1</max-retries> <max-batch-size>10</max-batch-size> <max-batch-time>100</max-batch-time> <add-messageID-in-header>true</add-messageID-in-header> </jms-bridge> ... </subsystem>
警告
JMS ブリッジは再接続処理に独自の
max-retries
パラメーターがあるため、reconnect-attempts
パラメーターを設定(または 0
に設定)しない接続ファクトリーを使用することが推奨されます。これにより、再接続時間が長くなる可能性がある競合の発生を防ぐことができます。
表18.9 HornetQ Core JMS 属性
属性 | 説明 |
---|---|
name |
ブリッジの名前はすべてサーバー上で一意となる必要があります。
|
source connection-factory |
SourceCFF Bean(beans ファイルにも定義されます)をインジェクトします。この Bean はソースの ConnectionFactory を作成します。
|
source destination name |
SourceDestinationFactory Bean(beans ファイルにも定義されます)をインジェクトします。この Bean はソースの Destination を作成します。
|
target connection-factory |
TargetCFF Bean(beans ファイルにも定義されます)をインジェクトします。この Bean はターゲット ConnectionFactory を作成します。
|
target destination name |
TargetDestinationFactory Bean(beans ファイルにも定義されます)をインジェクトします。この Bean はターゲット Destination を作成します。
|
quality-of-service |
このパラメーターは、必要なサービスモードの品質を示しています。使用できる値は AT_MOST_ONCE、DUPLICATES_OK、ONCE_AND_ONLY_ONCE です。
|
failure-retry-interval |
ブリッジによって接続の失敗が検出されたときに、ソースまたはターゲットサーバーへの接続を再試行する前に待機する期間 (ミリ秒単位) を表します。
|
max-retries |
ブリッジで障害が発生したことを検出したときに、ソースサーバーまたはターゲットサーバーへの接続の再作成を試行する回数を表します。この回数の試行後にブリッジが試行されます。-1 は「try forever」を表します。
|
max-batch-size |
バッチでターゲット宛先に送信する前にソース宛先から消費するメッセージの最大数を表します。この値は >= 1 にする必要があります。
|
max-batch-time |
消費されたメッセージの数が MaxBatchSize に達していない場合でも、ターゲットへバッチを送信するまで待機する最大時間(ミリ秒単位)を表します。実際の時間を指定するには、値が -1 である必要があります。「wait forever」または 1 以上(実際の時間)を表す必要があります。
|
add-messageID-in-header |
true の場合、元のメッセージのメッセージ ID がヘッダー HORNETQ_BRIDGE_MSG_ID_LIST 内の宛先に送信されるメッセージに追加されます。メッセージが複数回ブリッジされる場合は、各メッセージ ID が追加されます。これにより、分散リクエスト/応答パターンを使用できます。
メッセージを受信するとき、最初のメッセージ ID の相関 IDを使用して応答を送信できます。そのため、元の送信側がメッセージを受信すると簡単に関連付けできます。
|
注記
quality-of-service
属性が ONCE_AND_ONLY_ONCE
に設定されているデプロイ済みの JMS ブリッジを持つサーバーをシャットダウンする場合は、予期しない例外を防ぐために JMS ブリッジを持つサーバーを最初にシャットダウンします。
詳しい手順については、「JMS ブリッジの作成」 を参照してください。