【问题标题】:Synchronous behavior with JMS Topic与 JMS 主题的同步行为
【发布时间】:2012-03-13 07:54:22
【问题描述】:

我有下面的流伪代码,它使用队列发送消息,然后同步收听主题。底层 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 秒后也无法获取。

知道我在这里缺少什么吗?

【问题讨论】:

    标签: java jms spring-jms tibco-ems


    【解决方案1】:

    想通了。就在调用messageConsumer.receive(); 之前,调用connection.start() 以开始传递消息。

    【讨论】:

      猜你喜欢
      • 2011-07-31
      • 1970-01-01
      • 2011-08-27
      • 2018-03-30
      • 2015-09-06
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      相关资源
      最近更新 更多