all groups > dotnet component services > october 2003 >
You're in the

dotnet component services

group:

The transaction has already been implicitly or explicitly committed or aborted


The transaction has already been implicitly or explicitly committed or aborted mtruong NO[at]SPAM sbiandcompany.com
10/31/2003 11:59:25 PM
dotnet component services:
I am using Enterprise Services Serviced Components to handle database
transactions on a SQL Server 2000 database running on a Windows 2003
Server operating system. My web application which is calling my
serviced component is on a different server than my database. I am
using Required transactions with [AutoComplete].

I have read most of the postings on this subject. Most of the
solutions say that you just have to enable Network Transactions in
your Component Services -> My Computer -> Properties. However, I have
done this on both servers - the one running my application and the one
that has my database. I have restarted all services and even rebooted
both machines. This does not seem to work for me.

I have even downloaded the Microsoft DTCPing.exe and tested it from
both servers. All 3 tests pass - the ping, the RPC call and the
binding all succeed. However I am still getting the following error:


------------------------------------------------------------------------------
The transaction has already been implicitly or explicitly committed or
aborted
Description: An unhandled exception occurred during the execution of
the current web request. Please review the stack trace for more
information about the error and where it originated in the code.

Exception Details: System.Runtime.InteropServices.COMException: The
transaction has already been implicitly or explicitly committed or
aborted
------------------------------------------------------------------------------

I have also tried playing around with the SQL Server database ->
properties -> Connection tabs. I tried selecting enable "implicit
transactions" and "enable distributed transactions (MTS)", and it
still does not work. These are problems that we are having with our
test server and test database server.

The weird thing is that I got the same errors on my local server when
I tried connecting to another database on another server than my local
box. However, I started changing the SQL Server database ->
properties -> implicit and distributed transaction check boxes and it
started working. But after it started working I restored it back to
the original settings and it still works locally.

The hard thing is that I can't seem to duplicate the same problem on
Re: The transaction has already been implicitly or explicitly committed or aborted Pawel Smolarkiewicz
12/10/2003 1:18:39 PM
POSSIBLE SOLUTION:

I experienced very similar problems (HRESULT: 0x8004D00E when using a remote
SQL Server [on a different subnet, win2k3] and followed similar initial
steps as everyone else (enable Network DTC, check MSDTC security settings,
uninstall/reinstall MSDTC, reboot, ping machines, etc..), ultimately the
solution for me was to add an entry to both server and client's LMHOSTS
files to allow name resolution of each other (MSDTC seems to use the names,
not IP's for routing and my machines were on different subnets, also run
"nbtstat -R" and "nbtstat -c" after updating LMHOSTS to clear and update
name-resolution cache).

FYI, I found the DTCPing.exe utility (available from MS) very helpful to
isolate the problem and configure the firewall between the machines
correctly.

Hope this helps somebody, Cheers,
Pawel

[quoted text, click to view]

AddThis Social Bookmark Button