我可以使用Java JMS通过Websphere MQ队列发送批处理消息吗?
我在一个项目中工作,该项目需要通过异步WebSphereMQ消息向另一个应用程序发送多条消息。实际上,我正在为我发送的每一条消息打开和关闭会话。我感谢你的回答。顺便说一句,这是我在这里的第一篇帖子。我觉得这样的东西应该可以:我可以使用Java JMS通过Websphere MQ队列发送批处理消息吗?,java,batch-file,jms,ibm-mq,Java,Batch File,Jms,Ibm Mq,我在一个项目中工作,该项目需要通过异步WebSphereMQ消息向另一个应用程序发送多条消息。实际上,我正在为我发送的每一条消息打开和关闭会话。我感谢你的回答。顺便说一句,这是我在这里的第一篇帖子。我觉得这样的东西应该可以: Session session = connection.createSession(false, SESSION.AUTO_ACKNOWLEDGE); // Create first message Message msgOne = session.createTextM
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();
如果我没有弄错的话,对队列的回复是可选的。在您的问题标题中,您提到了batched这个词,这让我觉得您可能希望在一个事务中发送所有分组消息,以便组中的所有消息都被传递,或者根本没有。原子发射。如果这是一篇重要的文章,我会稍微修改Friek简洁明了的代码,如下所示:
Session session = connection.createSession(true, SESSION_TRANSACTED);
....
producer.send(msgOne);
producer.send(msgTwo);
session.commit();
....
打开/关闭每条消息的会话会产生不必要的开销;您可以根据下面的评论以批处理方式发送一组消息。