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);