Отправлять и использовать сообщение одним подключением - PullRequest
0 голосов
/ 29 мая 2020

Есть способ сделать это? Мой случай: есть соединения «A», «B» и «C», которые подписались на топи c с именем «Topi c 1». «А» отправляет сообщение топи c, но не получает его. «B» и «C» получают это сообщение. Если «C» отправляет сообщение на topi c, то это «A» и «B» получают сообщение.

1 Ответ

0 голосов
/ 29 мая 2020

Передайте true для параметра noLocal при создании потребителя.

Например, метод javax.jms.MessageConsumer#createConsumer имеет перегруженную версию, которая принимает javax.jms.Destination, String и boolean. Если вы укажете true для boolean (т.е. параметра noLocal), сообщения, опубликованные с использованием того же соединения, не будут использоваться. JavaDo c говорит об этом о параметре noLocal:

Аргумент noLocal используется, когда местом назначения является topi c и соединение сеанса также используется для публикации. sh сообщений этому топу c. Если для noLocal установлено значение true, то MessageConsumer не будет получать сообщения, опубликованные в topi c через собственное соединение. Значение этого аргумента по умолчанию - false. Если местом назначения является очередь, то действие настройки noLocal на true не указывается.

...