Sto utilizzando MSMQ versione 4 e ho una coda di transazione. Sto usando WCF per ascoltare la coda per i messaggi in arrivo.Come posso contrassegnare esplicitamente i messaggi come avvelenati in un MSMQ transazionale con WCF
Durante l'elaborazione esiste una dipendenza da componenti di terze parti che potrebbero non funzionare o non essere disponibili per un periodo di tempo più lungo. Per compensare questo utilizzo la funzionalità di gestione dei messaggi velenosi in MSMQ 4 (http://msdn.microsoft.com/en-us/library/aa395218.aspx) per riprovare i messaggi x quantità di volte con y quantità di tempo di attesa.
Tuttavia in determinate situazioni so che il messaggio di input non è valido/avvelenato. Quando ciò avviene, generando eccezioni, il messaggio seguirà la routine di gestione dei messaggi velenosi come tutti gli altri messaggi con tutti i tentativi e i tempi di attesa. Ma quando so che il messaggio è avvelenato, non vedo un motivo per riprovare e attendere il tempo configurato perché sia gestito dalla coda velenosa.
C'è un modo per contrassegnare esplicitamente un messaggio come avvelenato in modo da non seguire il flusso di tentativi configurato e spostarsi immediatamente sulla coda velenosa?
Ho esattamente lo stesso problema. Prendo che non hai trovato alcuna soluzione? – Leon
@Leon Infatti, nessuna soluzione trovata ancora. – Leo
Sono un principiante MSMQ e non ho provato questo - scusa se è sciocco. Questo era nell'articolo a cui sei collegato, "La coda velenosa è una sottocoda della coda principale, è denominata" poison "e viene generata automaticamente da MSMQ. Per accedervi, fornire il nome della coda principale seguito da un" ; "e il nome della sotto-coda, in questo caso -" veleno ". Impossibile rilevare i messaggi velenosi, rimuoverli dalla coda principale e inviarli manualmente alla coda dei veleni incorporata? –