MSDTC error : Import of MSDTC transaction failed: Result Code = 0x8004d00e.
Hi everyone!
I suppose you've allready heard of this error, I've searched for
answers on many other forums and groups but I didn't find a clear
answer.
So, for something to begin with - I am working on a VB 6.0 - 3 layered
application and I get the error when the business layer is trying to
persist some data. The broplem is that the transaction is not persisted
- the application hungs and returns the "server busy" error.
The wole application is blocked after this - when trying to save some data i keep getting this error.
The persistent objects MTS transaction mode is set to "Requires
transaction" and the component security levels are set to process
level, the authentication level is None, and the impersonation level to
Anonymus. I had some troubles before with the security settings and
I've reached to the conclusion that the security levels and settings
are the ones mentioned above - so i don#t really thinks that would be
the source of the error.
The error comes in different versions :
Thread ID: 740 ,Logged: Import of MSDTC transaction failed: Result Code = 0x8004d00e.
,
Thread ID: 740 ,Logged: Import of MSDTC transaction failed: Result Code = 0x8004d00e. 2
and
Thread ID: 740 ,Logged: Import of MSDTC transaction failed: Result Code = 0x8004d00e. persist 0
[1349 byte] By [
Bogdan.B] at [2007-12-24]
Hey Bogdan,
It's not clear to me from reading your post whether this is something you consistently (100%) hit, or if this is intermittent. If it is consistent then this may be a firewall issue. You need to make sure that msdtc traffic is allowed through the firewall on both machines and you will need to enable port 135 for the RPC endpoint mapper.
Miguel
First of all thanks for the answer.
The error is pretty weird because I too thought it was the firewall -
but the firewall is not enabled neither on the server or the client
machine. And the error is not intermitent - nor consistent :) The error
becomes consistent after the first time I get it - if I am lucky enough
and the error doesn't appear then everything works fine , after the
first error every other heavier transaction (heavier as in it takes
longer to commit) does not commit and i get this error.
Then again, I've reinstalled the server-side application and i've
restarted the COM+ services and now everything works fine - although, I
don't understant what changed and the next time I won't be able to
debug it - I'll have to go on an reinstall the server and the COM
services :(
I don't think it will be necessary to reinstall your COM+ App; we just need to figure out what's going wrong. The error that you're getting (XACT_E_NOTRANSACTION; 0x8004d00e) can occur in many places but most commonly is associated with a failed propagation of the transaction from the business layer to the database backend. Since things start out working and then "something happens" after which then nothing commits, we need to figure out what is the event.
Can you give me more information about the systems with which you're working? For example, the COM+ server is Windows 2000 with service pack 4 and the Database Server is Windows XP with service pack 2. What is you backend server? SQL? Have you looked through the event logs on both servers for any strange events around the time things start going wrong? Are services going down or restarting?
-Richard
Hi Richard!
The COM+ server is the same with the database server - we had
some problems in this direction also but we decided we'll let them on
the same machine because otherwise we got a pretty nice error -
"Transaction cannot enlist" we didn't get to the bottom of that one and
the only solution was - leave the COM+ and the database on the same
machine.
Ok, so to the server - the machine is a WIN 2003 server, the database
is MsSQL Server 2000 with SP3, the event logs didn't bring me any other
errors - this was the only error that had any relation with the
application. The services aren't going down, nor restarting -
everything goes on without any other efects on other
applications.
Yeah, so with the "Transactuion cannot enlist in the specified
transaction coordinator" - I've found the solution (COM+
communication&security settings ) and it was pretty easy - sorry to
have mentioned that in here.
Do I understand that you have solved your own problem? If so, you might want to post what you did to resolve the issue to assist others who might hit this same problem.
-Richard
No, I didn't solve it. I was stating that the problem with the "New
transaction cannot enlist in the specified transaction coordinator" is
a flaw (my fault) in the MSDTC security settings - or at least that's
what I found on the internet. Didn't get to test it yet - i am waiting
for a proper enviroment from the technical staff.
With the "Import of MSDTC transaction failed" - i haven't found anything yet.
Any resolution to this yet? I am having the same problem.
This would be great, but you haven't explained exactly what you did in Com+ - we have exactly the same problem.
Is there any resolution available for the MSDTC issue yet? I am experiencing the same MSDTC issue between a web/app server and SQL server2k.Both these environments are on Win2K server with SP4. SQL server has SQL SP3 on.The error comes intermittently.
If your environment is a homogeneous W2KSp4 environment, then the problem is not due to any RPC security settings on MSDTC. RPC security was added in the XPSp2 timeframe. The error code is stating that the transaction has already committed or aborted when your client app attempted to Commit.
To help diagnose what's happening, you should turn on tracing. Transaction tracing was added to W2K. To configure tracing, please refer to: http://support.microsoft.com/kb/898918/.
Hope this helps,
-Richard
I am getting the same error on a Windows XP machine. How do I reload COM+ services? We have a company wide interface program which will not load on our new Dell Latitude D620 becuase of this COM+ error. First time i've dealt with it. Any help is much appreciated.
If you use local firewall, Cancel that. and if you use the .Net , change "machine" to "SYSTEM" at userName in machine.config.
just try to do .. ^^
Wow, the Firewall-Tip succeeded. But what exactly is the problem? I'd like to configure my firewall in a way that transactions will work but other firewall protections stil stay active!?