【发布时间】:2010-12-05 11:33:03
【问题描述】:
谁能告诉我 MSMQ(使用事务)是否支持竞争消费者?基本上,我有多个线程将消息从单个队列中出列。只是想确保这会起作用,因为 MSMQ 有时的行为与我预期的不同。
【问题讨论】:
-
你在偷看或接收消息吗?
-
我正在接收消息。
标签: msmq msmq-transaction
谁能告诉我 MSMQ(使用事务)是否支持竞争消费者?基本上,我有多个线程将消息从单个队列中出列。只是想确保这会起作用,因为 MSMQ 有时的行为与我预期的不同。
【问题讨论】:
标签: msmq msmq-transaction
如果您从同一队列的同一台机器上的多个进程调用 Receive,您将不会多次收到相同的消息 -- 除非您从读取回滚事务。
如果您使用的是 2008/w7 并且在多台机器上接收来自事务中同一远程队列的消息,则您不应看到两次相同的消息(再次,除非您回滚)。
如果您使用枚举器来查看消息,然后删除有趣的消息(通过 RemoveCurrent),您应该会看到一个异常,即如果另一个消费者已获取该消息,则该消息已被删除。
如果您使用的是 2003/XP,则无法在事务中进行远程接收,因此所有赌注都在那里。
【讨论】: