Подтвердить что ты не робот

JMS ReplyTo - Как это работает?

JMS API позволяет сообщениям объявлять экземпляр replyTo Destination. (т.е. суперкласса Queue, Topic). Затем служба может отправить ответное сообщение отправителю с использованием этой очереди.

Существуют ли какие-либо ограничения на то, что Destination можно установить как значение ReplyTo? Это кажется маловероятным для работы, поскольку у службы может даже не быть сетевого маршрута к определенному Destination и, следовательно, он не может вернуть какое-либо сообщение. Является ли JMS каким-то образом подтверждением достоверности (достижимости) предоставленного Destination? Или это просто до службы, чтобы попытаться ответить на заданный Destination и при необходимости выполнить сбой.

4b9b3361

Ответ 1

Сценарий 1

В этом случае Destination предварительно настроен и, следовательно, проверен на работоспособность. Не так много значения для назначения этого адресата в качестве значения для заголовка JMSReplyTo, поскольку получатель может уже знать о существовании этого предварительно настроенного адресата.

Сценарий 2

В этом случае отправитель создает временный. Назначение и получатель узнают об этом, только вызвав метод getJMSReplyTo() на принятом Message. Этот тип устанавливает частный канал между отправителем и получателем. Прочитайте эту хорошую статью о плюсах и минусах временных мест назначения.

Пример кода

Queue tempQueue = qSession.createTemporaryQueue();
TextMessage request = qSession.createTextMessage();
request.setJMSReplyTo(tempQueue);
QueueReceiver qReceiver = qSession.createReceiver(tmpQueue);
Message response = qReceiver.receive();