MSMQ事务队列,按顺序传递

D.R*_*.R. 2 msmq

是否可以在MSMQ消息队列上强制执行有序接收?即我们希望以与发送时相同的顺序接收消息.

编辑:如果有帮助:交易队列对我们没问题.没有DTC会更好.

Edit2 - 一些额外的上下文:当用户向我们的数据库提交新数据(通过Web界面)时,我们的Web应用程序将事件发布到服务总线上(使用MSMQ).总线上的监听器现在应该按顺序接收消息,因为这对于一致性很重要(在创建之前无法重命名人员......).总线人员只是为每个点对点连接和订阅管理创建队列,但是,他们说底层队列负责按顺序交付事件.

Joh*_*ell 5

确保消息按照从队列中读取的顺序到达队列的唯一方法是在一个事务中发送所有消息.

您可以在事务之外发送多条消息,并且它们很可能确实按照它们发送的顺序到达队列但是不能保证.因此,您需要编写错误处理代码来处理无序情况.

  • 是的,非常自信.花了几年时间在微软的MSMQ支持上,经常与产品组合作.虽然按顺序发送消息看起来很容易,但是封面下的管道很重要.因此,我们讨论了线路上的网络数据包及其重试机制和传输窗口,或接收器上MSMQ服务的多线程,这意味着理论上消息可能相互超越.但实际上,强迫它是非常困难的. (3认同)