2009-10-09 9 views
7

Kann mir jemand sagen, ob MSMQ (mit Transaktionen) konkurrierende Verbraucher unterstützt? Im Grunde genommen habe ich mehrere Threads, die Nachrichten aus einer einzigen Warteschlange herausnehmen. Ich wollte nur sicherstellen, dass dies funktioniert, da sich MSMQ manchmal anders verhält als erwartet.MSMQ konkurrierenden Verbraucher

+1

Spähen oder empfangen Sie Nachrichten? –

+0

Ich empfange Nachrichten. –

Antwort

6

Wenn Sie von mehreren Prozessen auf demselben Computer in derselben Warteschlange Receive aufrufen, erhalten Sie dieselbe Nachricht nicht mehr als einmal - es sei denn, Sie führen eine Transaktion aus einer Leseoperation aus.

Wenn Sie 2008/w7 verwenden und auf mehreren Rechnern von derselben fernen Queue innerhalb einer Transaktion empfangen, sollten Sie die gleiche Nachricht nicht zweimal sehen (auch wenn Sie nicht zurückrollen).

Wenn Sie einen Enumerator verwenden, um die Nachrichten zu sehen und dann einen interessanten entfernen (via RemoveCurrent), sollten Sie eine Ausnahme erwarten, dass die Nachricht bereits entfernt wurde, wenn ein anderer Benutzer sie abgeholt hat.

Wenn Sie auf 2003/XP sind, können Sie in einer Transaktion keine remote empfangen, so dass alle Wetten weg sind.