4.9. 完全修飾キュー名の指定

内部的には、ブローカーはアドレスのクライアント要求を特定のキューにマッピングします。ブローカーは、メッセージの送信先となるキューまたはメッセージを受信するキューをクライアントに代わって決定します。ただし、より高度なユースケースでは、クライアントが直接キュー名を指定する必要がある場合があります。このような状況では、クライアントは 完全修飾キュー名 (FQQN) を使用できます。FQQN には、:: で区切られたアドレス名とキュー名の両方が含まれています。

以下の手順では、複数のキューを持つアドレスに接続する際に FQQN を指定する方法を説明します。

前提条件

  • 以下の例のように、2 つ以上のキューが設定されているアドレスがあります。

    <configuration ...>
      <core ...>
        ...
        <addresses>
           <address name="my.address">
              <anycast>
                 <queue name="q1" />
                 <queue name="q2" />
              </anycast>
           </address>
        </addresses>
      </core>
    </configuration>

手順

  • クライアントコードで、ブローカーから接続を要求する際に、アドレス名とキュー名の両方を使用します。名前を区切りには、2 つのコロン (::) を使用します。以下に例を示します。

    String FQQN = "my.address::q1";
    Queue q1 session.createQueue(FQQN);
    MessageConsumer consumer = session.createConsumer(q1);