2011-05-16 52 views
0

我正在處理一個需要通過異步Websphere MQ消息將多個消息發送到另一個應用程序的項目。其實我正在爲我發送的每封郵件打開和關閉會話。我感謝你的回答。順便說一下,這是我的第一篇文章。我可以使用Java JMS通過Websphere MQ隊列發送批處理消息嗎?

+0

每個消息的打開/關閉會話會產生不必要的開銷;您可以根據下面的評論發送一批批消息。 – raffian 2013-05-30 14:43:06

回答

0

我想,這樣的事情應該工作:

Session session = connection.createSession(false, SESSION.AUTO_ACKNOWLEDGE); 
// Create first message 
Message msgOne = session.createTextMessage("Message One"); 
// Set reply-to queue to REPLY1QUEUE 
msgOne.setJMSReplyTo(session.createQueue("REPLY1QUEUE")); 
// Create another message. 
Message msgTwo = session.createTextMessage("Message Two"); 
msgTwo.setJMSReplyTo(session.createQueue("REPLY2QUEUE")); 

// Initialize destination queue and message producer. 
MessageProducer producer = session.createProducer(session.createQueue("DESTQUEUE")); 

// Connect, send and close. 
connection.start(); 
producer.send(msgOne); 
producer.send(msgTwo); 
connection.close(); 

// Close the session. 
session.close(); 

如果我沒有記錯的話,則應答隊列是可選的。

0

在您的問題標題中,您提到了這使我想你可能希望在單個事務中發送所有分組消息,以便組中的所有消息都被傳送或根本沒有。 (原子發送)。如果這是一件重要的事情,我會稍微修改Friek's(簡潔而乾淨)的代碼,如下所示:

Session session = connection.createSession(true, SESSION_TRANSACTED); 
.... 
producer.send(msgOne); 
producer.send(msgTwo); 
session.commit(); 
.... 
相關問題