I have an application that retrieves data and storages to the database once a day. Until recently, this application was located on the same machine as the SQL server, but due to some hardware problems with some of the necessary peripherals, it was ported to a separate machine with Windows XP.
The problem we have here is that when the first transaction of the morning is executed, we get a stack trace of the following content:
System.Transactions.TransactionManagerCommunicationException: Communication with the primary transaction manager failed. ---> System.Runtime.InteropServices.COMException (0x80004005): HRESULT error E_FAIL was returned from a call to the COM component.
However, immediate re-execution of the transaction will succeed. It seems that MSDTC has been reacting too long to the first transaction and thus fails, but is then ready for the second. I found several links to this on the Internet, but did not find a real solution. Has anyone come across this? If so, is there a way to prevent MSDTC from unloading from memory, or is there another solution for this, such as extending timeouts?
source
share