【问题标题】:MQMessage read or deleteMQMessage 读取或删除
【发布时间】:2012-01-30 23:14:41
【问题描述】:

我们有 WebSphere MQ 服务器。 我编写了 Java 客户端实用程序,它可以读取所有消息(将它们留在队列中)或从队列中删除所有消息。 但是这是否可以读取消息并且如果它包含某些字符串 - 删除它?

读取我使用的队列消息(消息将保留在服务器队列中以供将来处理,因为实用程序仅用于测试):

MQQueue queue = queueManager.accessQueue(queueName, MQC.MQ00_BROWSE | MQC.MQ00_INPUT_SHARED);
MQGetMessageOptions options = new MQGetMessageOptions();
options.options = MQC.MQ00_BROWSE_FIRST | MQC.MQ00_INPUT_SHARED;
while(true) {
MQMessage msg = new MQMessage();
queue.get(msg, options);
if (msg.getTotalMeesageLength() == 0) {
break;
} else {
readMessage(msg);
}

【问题讨论】:

    标签: java ibm-mq


    【解决方案1】:

    这实际上是一个相当普遍的要求。该方法是浏览消息以查找要删除的消息。当你找到它时,用破坏性的GET 删除它。您可以使用信息中心here 中所述的浏览光标GET 消息。您还可以使用从浏览中获得的MsgID 使用具有自己的队列句柄到GET 的单独线程。只需调用另一个线程并将MsgID 传递给它。最简单的方法是使用一个线程和浏览光标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 2015-05-05
      • 1970-01-01
      相关资源
      最近更新 更多