我可以使用Java JMS通过Websphere MQ队列发送批处理消息吗?

时间:2011-05-16 19:52:55

标签: java batch-file jms ibm-mq

我正在一个需要通过异步Websphere MQ消息向另一个应用程序发送多个消息的项目中工作。实际上我正在为我发送的每条消息打开和关闭会话。我感谢你的回答。顺便说一句,这是我在这里的第一篇文章。

2 个答案:

答案 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();
....