gpt4 book ai didi

websphere - 如何使用MDB从队列中按顺序读取消息?

转载 作者:行者123 更新时间:2023-12-04 17:58:08 25 4
gpt4 key购买 nike

我有一个监听 WebSphere MQ 的 MDB。它不会按照队列接收到的顺序来获取消息。我怎样才能让它按这个顺序阅读?是否可以?我不应该使用 MDB。

最佳答案

通常,WMQ 按照消息接收的顺序传递消息。但是,有几件事会影响...

  • 如果队列设置为优先级而不是 FIFO 传递,并且消息以不同的优先级到达,它们将“乱序”传递。
  • 区分生产的订单和交付的订单。如果消息是在远程 QMgr 上生成的,并且有多个到本地 QMgr 的路径,则消息可能会乱序到达。
  • 持久性差异 - 如果消息在远程 QMgr 上生成并且具有不同的持久性,则非持久性消息可能比持久性消息更快到达,尤其是在设置了 NPMSPEED(FAST) channel 的情况下。
  • 多个读取器/写入器 - 对序列的任何依赖都意味着单个生产者通过单个路径发送给单个消费者。生产者、消费者或它们之间的路径中的任何冗余都可能导致消息传递失序。
  • 同步点 - 为了保持顺序,必须在同步点下写入和使用所有消息,否则必须在同步点之外写入和使用所有消息。
  • 选择器 - 这些专门用于根据队列中所有消息的上下文无序传递消息。
  • 消息组 - 分组消息的检索通常要等到整个组都存在。如果组是交错的,则消息会乱序传递。
  • DLQ - 如果目标队列已满,则可以将消息传递到 DLQ。随着目标队列被排空,消息开始返回那里。当队列接近容量时,消息可以在目标队列和 DLQ 之间交替。

  • 因此,当 MDB 接收无序消息时,这些事情中的任何一个,甚至其中几个的组合,都可能是原因。要么消除对消息序列的依赖(最佳选择),要么重新设计并协调可能导致无序处理的所有因素。

    关于websphere - 如何使用MDB从队列中按顺序读取消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4311435/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com