Distributor error handling

Component: Distributor
NuGet Package NServiceBus.Distributor.MSMQ (4.x)
Target NServiceBus Version: 4.x
Standard support for version 4.x of NServiceBus has expired. For more information see our Support Policy.

NServiceBus provides error handling and has Immediate Retries and Delayed Retries.

When using the distributor the behavior of retries and the related message flow is different between major versions.

Immediate Retries

Immediate Retries are always performed on the worker.

Delayed Retries

The behavior of Delayed Retries is different between major versions.

Delayed Retries has two configurable items TimeIncrease and NumberOfRetries.

The message will be retried on any available worker. Message processing is not sticky to the worker.

The Delayed Retries policy is only applied on the distributor for both NumberOfRetries and TimeIncrease settings.

The distributor has a .retries queue where a message is forwarded to in case of an error. Then the distributor processes this message, when the retry limit has been reached the message will be forwarded to the error queue or else scheduled for retry by the distributor.

Best practice

Due to the behavioral differences between major versions it is advised to have the SecondLevelRetriesConfig exactly the same on both the distributor and the workers even though it could be that settings are ignored.

It is assumed that NumberOfRetries and TimeIncrease are the same on the distributor and the workers.

If settings are managed in XML configuration all changes in the distributor configuration need to be replicated to all nodes.


Related Articles

Last modified