4.9. 指定完全限定的队列名称
在内部,代理将客户端的请求映射到特定队列。代理决定代表将消息发送到的队列,或者从哪个队列接收消息的队列。但是,更高级的用例可能需要客户端直接指定队列名称。在这些情况下,客户端可以使用 完全限定的队列名称 (FQQN)。FQQN 包括地址名称和队列名称,用 ::
分隔。
以下流程演示了如何在连接到具有多个队列的地址时指定 FQQN。
先决条件
您已经配置了两个或更多队列的地址,如下例所示。
<configuration ...> <core ...> ... <addresses> <address name="my.address"> <anycast> <queue name="q1" /> <queue name="q2" /> </anycast> </address> </addresses> </core> </configuration>
流程
在客户端代码中,在从代理请求连接时使用地址名称和队列名称。使用两个冒号:
::
来分隔名称。例如:String FQQN = "my.address::q1"; Queue q1 session.createQueue(FQQN); MessageConsumer consumer = session.createConsumer(q1);