This post is basically to help someone who finds themselves in the same situation I was in this morning, over the weekend our DB server went down (runs MS SQL Server 2000, yeah I know) when it came back up the MS DTC service was set to manual and not started so this ended up with the NServiceBus Host the message handlers are running in throwing the common exception:
The Transaction Manager is not available
This is fair enough our messages end up in the error queue ready for me to sort things out and use the ReturnToSourceQueue.exe, once I got in and saw the errors I did the following:
- Started the MS DTC service on the DB server
- Ran ReturnToSourceQueue.exe against the messages in the error queue
I was somewhat surprised to find the messages return straight back to the error queue and the following exception now being logged:
DTC transaction prepre [sic] phase failed
To solve this I restarted the NServiceBus Host running the message handlers and this resolved it completely, hopefully this saves someone some time.