Delayed retry executes same message on multiple nodes (SQL Transport)

Hi, I currently have a scenario using NSB with SQL transport where delayed retries of a failed message ends up beeing consumed by multiple nodes at the same time. All nodes run as competing consumers against shared queue. What are the guarantees for delivery regarding this scenario, my expectionation is to have a single message added back to input queue after timeout (delay) and to then be consumed by only one of the consumers. The messages are not idempotent and getting parallel execution causes unnecessary conflicts in handling that requires additional retries and so on damaging throughput. Would very much appreciate some input on this topic.

After digging a bit deeper I realised that the system is using timeout dispatcher without distrubuted transaction and not native transport delayed deliver so now I know the reason for it and can correct it.

Hi Daniel

Is there a reason you haven’t moved yet to the native timeouts in the more recent version of the transport?


I am a consulting developer and have not been part of the initial setup of NSB. My assumptions are that it just has not been prioritized since there have been no real issues until now. However I know that work is currently beeing done to upgrade to later version.


1 Like