MSMQ竞争消费者

时间:2009-10-09 20:41:40

标签: msmq msmq-transaction

有人能告诉我MSMQ(使用交易)是否支持竞争消费者?基本上,我有多个线程将消息从单个队列中排除。只是想确保这一点有效,因为MSMQ的行为有时与我预期的不同。

1 个答案:

答案 0 :(得分:6)

如果您在同一队列上的同一台计算机上调用多个进程的Receive,则不会多次收到相同的消息 - 除非您从读取中回滚事务。

如果您正在使用2008 / W7并且在事务中从同一个远程队列中的多台计算机上接收,则不应再看到相同的消息两次(除非您回滚,否则)。

如果您使用枚举器查看消息然后删除一个有趣的消息(通过RemoveCurrent),您应该会看到一个异常,如果另一个消费者已经将其删除,则该消息已被删除。

如果您使用的是2003 / XP,则无法在交易中进行远程接收,因此所有投注都在那里。