有没有办法做到这一点?我的情况是:有连接“ A”,“ B”和“ C”以“主题1”的名称订阅了该主题。 “ A”向该主题发送一条消息,但没有收到。 “ B”和“ C”收到此消息。如果“ C”向主题发送一条消息,那么得到消息的是“ A”和“ B”。
答案 0 :(得分:0)
在创建使用者时,为true
参数传递noLocal
。
例如,javax.jms.MessageConsumer#createConsumer
方法具有一个重载版本,该版本采用javax.jms.Destination
,String
和boolean
。如果您为true
指定boolean
(即noLocal
参数),则不会消耗使用同一连接发布的消息。 JavaDoc说了有关noLocal
参数的内容:
noLocal
自变量用于目标为主题并且会话的连接也用于将消息发布到该主题。如果noLocal
设置为true
,则MessageConsumer
将不会接收通过其自己的连接发布到主题的消息。此参数的默认值为false
。如果目的地是队列,则未指定将noLocal
设置为true
的效果。