20.8.6. JMS ブリッジの設定

HornetQ には、完全に機能する JMS メッセージブリッジが含まれています。このブリッジは、ソースキューまたはトピックからメッセージを消費し、これらのメッセージを通常別のサーバーにあるターゲットキューまたはトピックへ送信します。
ソースやターゲットサーバーは同じクラスターにある必要はないため、ブリッジングは異なるクラスターの間 (WAN など) や接続が信頼できない場所でメッセージを確実に送信するのに適しています。
ブリッジは、HornetQ スタンドアロンサーバーと共にまたはJBoss AS インスタンス内にスタンドアロンアプリケーションとしてデプロイできます。ソースとターゲットの場所は同じ仮想マシンでも別の仮想マシンでもかまいません。

例20.4 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>

表20.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 を指定すると永久に接続を試行します。
max-batch-size
メッセージを一括してターゲットの宛先に送る前にソースの宛先から消費するメッセージの最大数を表します。値は 1 以上である必要があります。
max-batch-time
消費されたメッセージの数が MaxBatchSize に到達しない場合でも、ターゲットへバッチを送信する前に待機する最大期間 (ミリ秒単位) を表します。-1 (永久に待機) または 1 以上 (実際の時間) を値として指定する必要があります。
add-messageID-in-header
true の場合、元メッセージのメッセージ ID が宛先に送信されたメッセージのヘッダー HORNETQ_BRIDGE_MSG_ID_LIST に追加されます。メッセージが 2 回以上ブリッジングされる場合は、各メッセージ ID が追加されます。これは、分散された要求/応答パターンが使用されるようにします。
メッセージを受信するとき、最初のメッセージ ID の相関 IDを使用して応答を送信できます。そのため、元の送信側がメッセージを受信すると簡単に関連付けできます。
詳細については、「JMS ブリッジの作成」 を参照してください。