2012-02-22 7 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()に電話をかけてメッセージの配信を開始します。

関連する問題