Particular / NServiceBus.Transport.Msmq

MSMQ transport for NServiceBus
https://docs.particular.net/nservicebus/msmq/
Other
5 stars 11 forks source link

Poison message should not be send to the error queue #136

Open ramonsmits opened 4 years ago

ramonsmits commented 4 years ago

When messages fail header deserialization the transport forward these messages to the error queue. Problem is that SC cannot do anything with these messages as there is no FailedQ header. The bad thing here is that customers do not have a way to 'retry' such messages as we don't know from which queue the messages was forwarded.

Such poison messages are probably best moved to a Poison (sub)queue specific to the endpoint.

For example, the following issue caused a massive amount of messages to fail and it was a huge problem to solve and required manual inspection and heuristics to move the messages back to the correct queues:

ramonsmits commented 4 years ago

Solutions:

dvdstelt commented 2 years ago

+1000.

We just had a call with a customer that paid a couple of thousand for critical support, paid Microsoft for support and possible Dynatrace for support. The error was "failed to import because it's missing NServiceBus.FailedQ header", but the problem was what Ramon described above. 2020 isn't the year this was registered, it was the year I joined this company! ;-)