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