Синхронное поведение с темой JMS

Ниже приведен псевдокод потока, который использует очередь для отправки сообщения, а затем синхронно прослушивает тему. Основным поставщиком JMS является Tibco EMS.

//Send to Queue
Connection connection = createConnection(); // get the JMS connection
Session session = connection.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("sample.queue");
MessageProducer messageProducer =  session.createProducer(queue);
Message message = createMessage(); //create JMS message
messageProducer.send(message);

Теперь я слушаю тему, используя тот же session объект создан и дождитесь ответа.

Topic topic = session.createTopic("sample.topic");
MessageConsumer messageConsumer =  session.createConsumer(topic);
//wait for the reply.
Message responseMessage = messageConsumer.receive(60000);
if(responseMessage != null) {
    System.out.println("Message received..");
}

Проблема, с которой я сталкиваюсь, состоит в том, что объект сообщения выходит как ноль. Я протестировал с помощью инструмента мониторинга jms, и в теме есть какое-то сообщение, но приведенный выше код не может поднять его даже через 60 секунд.

Есть идеи, что мне здесь не хватает?

1 ответ

Решение

Догадаться. Как раз перед звонком messageConsumer.receive();вызов connection.start() начать доставку сообщения.

Другие вопросы по тегам