4.5. ポイントツーポイントおよびパブリッシュサブスクライブメッセージング両方のアドレスの設定

また、ポイントツーポイントとパブリッシュサブスクライブの両方のセマンティクスを持つアドレスを設定することもできます。

ポイントツーポイントとパブリッシュ/サブスクライブセマンティクスの両方を使用するアドレスの設定は、通常 推奨されません。しかし、例えば、orders という名前の JMS キューと、同じく orders という名前の JMS トピックが必要な場合には便利な場合もあります。異なるルーティングタイプにより、アドレスがクライアント接続で区別されます。このような状況では、JMS キュー・プロデューサーが送信するメッセージは、anycast ルーティング・タイプを使用します。JMS トピックプロデューサーによって送信されるメッセージは、multicast ルーティング タイプを使用します。JMS トピックコンシューマーがブローカーに接続すると、独自のサブスクリプションキューに割り当てられます。ただし、JMS キューコンシューマーは anycast キューに割り当てられます。

以下の図は、ポイントツーポイントおよびパブリッシュサブスクライブメッセージングの例を示しています。

以下の手順は、ポイントツーポイントとパブリッシュ/サブスクライブメッセージングの両方にアドレスを設定する方法を示しています。

注記

このシナリオの動作は、使用されるプロトコルによって異なります。JMS の場合、トピックとキュープロデューサーとコンシューマーの間に明確な区別があり、これによりロジックを簡単に転送できます。AMQP などの他のプロトコルはこの区別を行いません。AMQP 経由で送信されるメッセージは、anycast および multicast によってルーティングされ、コンシューマーデフォルトは anycast です。詳細は、3章ネットワーク接続: プロトコル を参照してください。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. address 要素の queue 要素で anycast 設定要素をラップします。以下に例を示します。

    <configuration ...>
      <core ...>
        ...
        <address name="orders">
          <anycast>
            <queue name="orders"/>
          </anycast>
        </address>
      </core>
    </configuration>
  3. 空の multicast 設定要素をアドレスに追加します。

    <configuration ...>
      <core ...>
        ...
        <address name="orders">
          <anycast>
            <queue name="orders"/>
          </anycast>
          <multicast/>
        </address>
      </core>
    </configuration>
    注記

    通常、ブローカーはサブスクリプションキューをオンデマンドで作成します。したがって、multicast 要素内に特定のキューを記述する必要はありません。