Какова цель MessageProducer и пункт назначения? - PullRequest
0 голосов
/ 26 июня 2019

Кажется, что вы можете создать только один MessageProducer для одного Destination в JMS, но почему вы можете передать Destination для метода send()? Можно ли использовать один MessageProducer для отправки нескольким Destination?

Например:

MessageProducer messageProducer = session.createProducer(Queue, Queue2);
messageProducer.send(Queue, objectMessage);
messageProducer.send(Queue2, objectMessage2);

1 Ответ

1 голос
/ 26 июня 2019

Да, можно использовать один MessageProducer для отправки нескольким Destination. То, что вы хотите, называется «анонимным» производителем.

Когда вы создаете свой экземпляр MessageProducer, просто передайте null для Destination, например ::

private MessageProducer messageProducer = session.createProducer(null);

Это подробно описано в JavaDoc для javax.jms.Session.

Затем укажите Destination при отправке ваших сообщений, например ::

messageProducer.send(Queue, objectMessage);
messageProducer.send(Queue2, objectMessage2);

Подробнее см. В JavaDoc для javax.jms.MessageProducer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...