MSMQ consumatore in competizione
-
20-09-2019 - |
Domanda
Qualcuno può dirmi se MSMQ (utilizzando le transazioni) supporta i consumatori concorrenti? Fondamentalmente, ho più thread dequeueing messaggi fuori di una singola coda. Volevo solo fare in modo che questo funzionerà dal MSMQ a volte si comporta in modo diverso da quello previsto.
Soluzione
Se si chiama Ricevi da più processi sulla stessa macchina sulla stessa coda, non sarà possibile ottenere lo stesso messaggio più di una volta -. A meno che non rollback di una transazione da una lettura
Se si utilizza 2008 / W7 e stanno ricevendo su più macchine dalla stessa coda remota all'interno di una transazione, non si dovrebbe vedere lo stesso messaggio due volte (di nuovo, a meno che non si tira indietro).
Se si utilizza un enumeratore per sbirciare i messaggi e poi rimuovere un interessante (via RemoveCurrent), si dovrebbe aspettare di vedere un'eccezione che il messaggio è già stato rimosso se un altro consumatore ha lo raccolse.
Se siete su 2003 / XP, non si può fare remoto riceve in una transazione in modo da tutte le scommesse sono fuori lì.