我正在一个需要通过异步Websphere MQ消息向另一个应用程序发送多个消息的项目中工作。实际上我正在为我发送的每条消息打开和关闭会话。我感谢你的回答。顺便说一句,这是我在这里的第一篇文章。
答案 0 :(得分: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();
如果我没弄错的话,回复队列是可选的。
答案 1 :(得分:0)
在您的问题标题中,您提到了 batched 一词,这使我认为您可能希望在单个事务中发送所有已分组的邮件,以便组中的所有邮件都已发送或根本不发送。 (原子发送)。如果这是一个重要的部分,我会稍微修改一下Friek(干净简洁)的代码:
Session session = connection.createSession(true, SESSION_TRANSACTED);
....
producer.send(msgOne);
producer.send(msgTwo);
session.commit();
....