MSDTC error on first transaction

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?

+3
source share
6 answers

Thanks guys,

To fill you up, we solved the problem by changing the configuration of dcom to use a remote coordinator located on the SQL server, so far we have not encountered any additional problems.

+1
source

, . , . , , .

ServerFault, , , . ( ), . , , ( ), , .

0

, ( ), , DNS IP- , . DNS/DHCP, IP . MSDTC MSDTC , .

( ) - .

0

, . ( ) Subsonic . SharedDbConnectionScope, XP SP3. , SP3 , , Vista, 2003 2008.

EDIT: MSDN KB, .

0

, , DTC 30 ?

0

. , 10 , " ".
, MSDTC ( , - , 4 ). , , . : http://support2.microsoft.com/?id=922430

0

Source: https://habr.com/ru/post/1714360/


All Articles