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

发布于 2024-11-07 14:15:36 字数 108 浏览 2 评论 0原文

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

I'm working in a project that requires to send multiple messages to another application via asynchronous Websphere MQ messages. Actually I'm opening and closing sessions for every message I send. I appreciate your answers. By the way this is my first post here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝戈者 2024-11-14 14:15:36

在您的问题标题中,您提到了“批处理”一词,这让我认为您可能希望在单个事务中发送所有分组消息,以便发送组中的所有消息或根本不发送消息。 (原子发送)。如果这是一个重要的部分,我会稍微修改 Friek 的(干净简洁的)代码,如下所示:

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

In your question header, you mentioned the word batched which made me think you might want to send all the grouped messages in a single transaction so that all messages in the group are delivered or none at all. (An atomic send). If this is an important piece, I would slightly modify Friek's (clean and concise) code as follows:

Session session = connection.createSession(true, SESSION_TRANSACTED);
....
producer.send(msgOne);
producer.send(msgTwo);
session.commit();
....
星星的軌跡 2024-11-14 14:15:36

我认为这样的事情应该有效:

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();

如果我没有记错的话,回复队列是可选的。

I figure something like this should work:

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();

If I'm not mistaken, the reply-to queue is optional.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文