Welcome to MSDN Blogs Sign in | Join | Help

Data Tools and Software Testing

Old model-based testers never die; they just transition to a higher state.

Syndication

News

    These postings are provided "AS IS" with no warranties, and confer no rights.
    Use of included script and code samples are subject to the terms specified here.

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.

/*********************************************************************/

Published Saturday, February 14, 2004 3:13 AM by nihitk

Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: New transaction cannot enlist in specified transaction coordinator @ Saturday, February 14, 2004 11:34 AM

This tool shows which process owns each TCP and UDP port:
http://www.sysinternals.com/ntw2k/source/tcpview.shtml

It's very useful.

Carlos

# re: New transaction cannot enlist in specified transaction coordinator @ Saturday, February 14, 2004 2:56 PM

Actually, NETSTAT.EXE is the tool which shows which ports are open. If I am not mistaken, starting with Windows XP, there is a new command line switch to display which application is responsible for opening each port.

Fernando Tubio

# re: New transaction cannot enlist in specified transaction coordinator @ Sunday, February 15, 2004 2:58 AM

Good stuff. TCPView defintely looks like a tool I will need to play with some more. Don't know about that Windows XP command line tool - haven't run into it as yet, so would be good to know about it.

Nihit Kaul

# re: New transaction cannot enlist in specified transaction coordinator @ Sunday, February 15, 2004 8:34 AM

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.

Fernando Tubio

# re: New transaction cannot enlist in specified transaction coordinator @ Sunday, February 15, 2004 3:01 PM

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!

Nihit Kaul

# re: New transaction cannot enlist in specified transaction coordinator @ Wednesday, May 18, 2005 3:20 PM

Thanks Nihit U are saving my day if it works

veer ji

# re: New transaction cannot enlist in specified transaction coordinator @ Monday, March 13, 2006 7:16 AM

Hi,
  I am getting the same error. I tried using the workaround of adding more ports. But I am strill getting this error.

Nitin

# re: New transaction cannot enlist in specified transaction coordinator @ Tuesday, April 18, 2006 8:47 PM

I'm also getting the same problem - I've turned off the Firewall, checked all the appropriate settings in dcomcnfg.exe and can get DTCPing working.  But still my ASP test page cannot access the COM+ components.  Any more thoughts would be appreciated.

Rachel Collingridge

# re: New transaction cannot enlist in specified transaction coordinator @ Monday, April 24, 2006 4:40 PM


Make sure you enable new XP SP2 security settings in MSDTC.  Under Component Services\My Computer\Properties\MSDTC\Security.

Ross Meeks

# re: New transaction cannot enlist in specified transaction coordinator @ Tuesday, April 25, 2006 4:59 AM

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?

Stefan Vestergaard

# re: New transaction cannot enlist in specified transaction coordinator @ Tuesday, June 27, 2006 6:45 AM

I ran into the same s**t using BizTalk because the SQL Server is on a different srv.. I haven't figured it out yet.. Anyway, this is how you could use the netstat cmd:

Q: How do I find the process for an active port?

A: To find the process associated with a given active port in Microsoft Windows Server 2003 and Windows XP, you can locate the PID associated with the port by typing netstat -aon. You can then find the process associated with the PID by typing tasklist -FI "PID eq XX", where XX is the PID of the process.

ducuboy

# re: New transaction cannot enlist in specified transaction coordinator @ Tuesday, July 18, 2006 1:18 PM

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???

CJ Butcher

# re: New transaction cannot enlist in specified transaction coordinator @ Tuesday, July 18, 2006 1:35 PM

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

nihitk

# re: New transaction cannot enlist in specified transaction coordinator @ Tuesday, August 15, 2006 10:01 AM

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"

KM Walker

# re: New transaction cannot enlist in specified transaction coordinator @ Monday, October 02, 2006 4:48 PM

I have a DCOM component that has a method which creates an ADO transaction to insert and update tables in SQL Server 2000.  

I recently attempted to add an INSERT and UPDATE trigger to the tables and immediately ran into this error.  The error resolved after deleting the triggers.

SBrown

# re: New transaction cannot enlist in specified transaction coordinator @ Tuesday, November 20, 2007 1:58 PM

If your ambient is Development, so simply try to change the Require transaction option from the Transaction tab from the component property. Try this when you do not need transaction context in development time.

Thiago

# re: New transaction cannot enlist in specified transaction coordinator @ Thursday, January 10, 2008 5:40 AM

hmm, no luck, your sugggestions did not work for me for my win 2k server. I still get the error. One setting that I found to be different  is the Default Impeorsantion level which is set to Identity on the machine(PROD) I am getting error and anonymous on the machine(DEV) where it is working fine. Any inputs?

In Hyderabad

# re: New transaction cannot enlist in specified transaction coordinator @ Thursday, February 21, 2008 2:56 AM

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

Habeeb

Leave a Comment

(required) 
required 
(required) 
Page view tracker