David Currie在2006年写了一个很好的IBM developerWorks博客,标题是“使用WebSphere MQ Java和JMS API对消息进行分组”,该博客描述了如何执行您的请求,但似乎最近被IBM删除了。
Wayback Machine link to "Grouping messages using the WebSphere MQ Java and JMS APIs"
下面是David在帖子中提供的信息,看起来put逻辑比get逻辑更容易实现。我只包括在这里放置逻辑代码,因为这是您询问的内容。我通过电子邮件联系了大卫,问他这个博客是否会再版。
让我们从发送应用程序开始。如上所述,
put消息选项MQPMO\u LOGICAL\u ORDER只是一条指令
标识符和序列号。下面清单3中的示例
演示如何在JMS API中没有此选项的情况下
清单3。使用WebSphere MQ JMS API发送消息组
MQConnectionFactory factory = new MQConnectionFactory();
factory.setQueueManager("QM_host")
MQQueue destination = new MQQueue("default");
destination.setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ);
Connection connection = factory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(destination);
String groupId = "ID:" + new BigInteger(24 * 8, new Random()).toString(16);
for (int i = 1; i <= 5; i++) {
TextMessage message = session.createTextMessage();
message.setStringProperty("JMSXGroupID", groupId);
message.setIntProperty("JMSXGroupSeq", i);
if (i == 5) {
message.setBooleanProperty("JMS_IBM_Last_Msg_In_Group", true);
}
message.setText("Message " + i);
producer.send(message);
}
connection.close();