MSMQ конкурирующий потребитель - PullRequest
7 голосов
/ 10 октября 2009

Может кто-нибудь сказать мне, поддерживает ли MSMQ (используя транзакции) конкурирующих потребителей? По сути, у меня есть несколько потоков, исключающих сообщения из одной очереди. Просто хотел убедиться, что это сработает, поскольку MSMQ иногда ведет себя не так, как я ожидаю.

1 Ответ

6 голосов
/ 13 октября 2009

Если вы вызываете метод получения от нескольких процессов на одном и том же компьютере в одной и той же очереди, вы не получите одно и то же сообщение более одного раза - если только вы не откатите транзакцию из чтения.

Если вы используете 2008 / w7 и получаете на нескольких машинах из одной и той же удаленной очереди в транзакции, вы не должны видеть одно и то же сообщение дважды (снова, если вы не выполните откат).

Если вы используете перечислитель для просмотра сообщений, а затем удаляете интересное (через RemoveCurrent), вы должны ожидать исключения, что сообщение уже было удалено, если другой потребитель его поднял.

Если вы работаете в 2003 / XP, вы не можете делать удаленные приемы в транзакции, поэтому все ставки сняты.

...