是否可以在MSMQ消息队列上强制执行有序接收?即我们希望以与发送时相同的顺序接收消息。
编辑:如果有帮助:交易队列对我们没问题。没有DTC会更好。
Edit2 - 一些额外的上下文:当用户向我们的数据库提交新数据时(通过Web界面),我们的Web应用程序将事件发布到服务总线上(使用MSMQ)。总线上的监听器现在应该按顺序接收消息,因为这对于一致性很重要(在创建之前无法重命名人员......)。公交人员只是为每个点对点连接和订阅管理创建队列,但他们说基础队列负责按顺序交付事件。
答案 0 :(得分:5)
确保消息按照从队列中读取的顺序到达队列的唯一方法是在一个事务中发送消息。
您可以在事务之外发送多条消息,并且它们很可能确实按照它们发送的顺序到达队列但是不能保证。因此,您需要编写错误处理代码来处理无序情况。