2012-02-22 77 views
0

我有下面的流代碼,它使用隊列發送消息,然後同步收聽主題。底層的JMS提供商是Tibco EMS。JMS的同步行爲主題

//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秒後也無法提取。

任何想法我在這裏想念什麼?

回答

0

想通了。在致電messageConsumer.receive();之前,致電connection.start()開始傳遞訊息。