New transaction cannot enlist in specified transaction coordinator
Seems like my day was dedicated to this error message! Ran into it while setting up some tests and we just couldn't get to the bottom of it. Here are some of the more interesting things I discovered while looking into this issue.
For starters there is this very useful KB article which guides you through various DTC related issues and how to identify them. The tool mentioned (DTCPing) was useful in ironing out some other issues, but not the main problem. The fascinating part was that the tool almost passed - we got an innocuous looking error followed by a message of the RPC test being a success. Here is what the error message looked like:
Error(0x2AFC) at nameping.cpp @62
-->gethostbyaddr
-->183(Cannot create a file when that file already exists.)
Interestingly, a colleague pointed me to an article dedicated to this very innocent looking error message. Wonders never seize! J
Anyway – this too did not get us all the way. After more head banging (and trying stunts like attempting to uninstall/reinstall MSDTC (which in retrospect might not have been too good an idea, since it can seriously screw up the system)) what finally solved the issue was opening up of more ports through Component Services à My Computer Properties à Default Protocols à Connection Oriented TCP/IP à Properties.
P.S. - One tool which would be useful in Windows - something that showed what ports were open/closed and were being used by which applications/services etc. Maybe there is tool out there which actually does that – Anyone?
/*********************************************************************/
This posting is provided "AS IS" with no warranties, and confers no rights.
/*********************************************************************/
Comments
- Anonymous
February 14, 2004
This tool shows which process owns each TCP and UDP port:
http://www.sysinternals.com/ntw2k/source/tcpview.shtml
It's very useful. - Anonymous
February 14, 2004
The comment has been removed - Anonymous
February 14, 2004
The comment has been removed - Anonymous
February 15, 2004
Sorry if I wasn't clear enough about NETSTAT. This is part of the tcp/ip utilities supplied by the operating system. Just open a command prompt an type netstat -a to display all open connections and listening ports. - Anonymous
February 15, 2004
Ah - Yup - that seems to be nifty as well (Netstat). Will certainly help in getting an idea about what port ranges are being used etc. Thx! - Anonymous
May 18, 2005
Thanks Nihit U are saving my day if it works - Anonymous
March 12, 2006
Hi,
I am getting the same error. I tried using the workaround of adding more ports. But I am strill getting this error. - Anonymous
April 18, 2006
The comment has been removed - Anonymous
April 24, 2006
The comment has been removed - Anonymous
April 24, 2006
how many port and what range? Been looking through netstat output, and i really dont have a clue which ports are being used be what... How large a range would be "ok"? Guess it depends on the traffic..?
Could i just open like ports 50000-52000 and hope for the best? - Anonymous
June 26, 2006
The comment has been removed - Anonymous
July 18, 2006
I am having a similar problem...I get the error message when I run an update statement from server A that used a linked server to get data from server B. However it only happens when I do an update tableA from linkedserver...tableB not if I do an insert tableA select * from linkedserver...tableB.
I also don't get the error if I do an update tableC from linkedserver...tableB.
Thoughts??? - Anonymous
July 18, 2006
Hi CJ,
That makes sense since the update command would most likely be running under a transaction but not the select command.
I am not sure how to help you other than the mentioned DTCPing tests etc. If this is SQL 2005, I would post it to a SQL 2005 forum as well since it might be something specific (reminds me some "Allow Remote Connections" setting in SQL 2005 that I had to tweak for some other issue).
- Nihit - Anonymous
August 15, 2006
System Internals is a great free ware site with very power full tools. There TCPViewer will show you in realtime all ports currently active / what they are being used for and who they are connected to. I am expereicing the same problem and am yet to find an answer. However I believe this article is going in the right direction
System Internals - Systeminternals.com
MS article
"http://support.microsoft.com/default.aspx?scid=kb;en-us;329332&Product=sql" - Anonymous
October 02, 2006
The comment has been removed - Anonymous
November 20, 2007
The comment has been removed - Anonymous
January 09, 2008
The comment has been removed - Anonymous
February 20, 2008
Hi all. Similarly tried to insert into lcl.tableA select from linkedsrvr.tableB, and had this error. lcl.TableA had a trigger. Used a select into statement (from lkdsrvr.tableB into lcl.tableC) then went from TableC into TableA successfully. Methinks the trigger is the culprit in my instance. Kind regards H