浏览消息与一条一条获取消息之间的区别

Difference between browsing messages or just get them one by one

对于 IBM MQ,可以使用 MQGET 浏览队列中的消息 (https://www.ibm.com/docs/en/ibm-mq/9.2?topic=queue-browsing-messages) or just do a 'normal' MQGET (https://www.ibm.com/docs/en/ibm-mq/9.2?topic=queue-getting-messages-from-using-mqget-call)

就检索的内容而言,我找不到浏览功能(使用游标除外)和普通获取功能的任何区别。

我是不是漏掉了什么?

一般来说,普通的获取是破坏性的,消息会从队列中永久删除,浏览不是演绎性的,不会从队列中删除消息。两种情况下返回的消息内容都是一样的

基本情况分为三种:

  1. 带有浏览选项的获取不会从队列中删除消息,它仍然可供其他消费者从队列中获取或浏览。

  2. 工作单元外的正常获取将从队列中删除消息,其他消费者将无法从队列中获取或浏览。

  3. 工作单元内的正常获取将使消息无法供其他消费者从队列中获取或浏览。

    • 如果工作单元已提交,消息将从队列中删除,其他消费者将无法从队列中获取或浏览。
    • 如果取消工作单元,消息将再次可供其他消费者从队列中获取或浏览。