Sunday, February 19, 2012

DTC problems connecting to server 2003

I have all the symptoms of KB article 839279:
"When you run a distributed transaction against an instance of SQL Server,
you may receive an error message that is similar to the following:
Server: Msg 7391, Level 16, State 1, Line 1
The operation could not be performed because the OLE DB provider
'SQLOLEDB' was unable to begin a distributed transaction. [OLE/DB provider
returned message: New transaction cannot enlist in the specified
transaction coordinator. ] OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d00a].
This problem may occur when one of following conditions is true:
Microsoft Windows Server 2003 or Microsoft Windows XP Service Pack 2
(SP2) is installed on the computer that initiates the distributed
transaction.
Microsoft Windows Server 2003 or Microsoft Windows XP SP2 is installed on
the remote computer that is running Microsoft SQL Server 2000, and that
computer is linked to the computer that initiates the distributed
transaction."
In my case, Windows server 2003 is running SQL server 2000, and I am trying
to do an INSERT INTO <table> EXEC <storedproc> from another computer that
has SQL server 2000 installed.
I can link the remote server, and run the stored proc and look at the
resulting records, but I can't do the INSERT INTO using the result of the
stored procedure -- I get the message:
Server: Msg 8501, Level 16, State 1, Line 1
MSDTC on server 'server\database' is unavailable.
Server: Msg 7391, Level 16, State 1, Line 1
The operation could not be performed because the OLE DB provider
'SQLOLEDB' was unable to begin a distributed transaction.
OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d01c].
In the "workaround" section of the KB article, Step 2, substeps g-i are not
possible on Windows server 2003 (non-SP1). It says to select Allow
Inbound and Allow Outbound, and also to check No Authentication Required in
the Transaction Manager Communication box. I can't! Those choices do not
appear in the dialog boxes.
Any suggestions on how to set the DTC "No Authentication Required" option?
David Walker
SEE http://support.microsoft.com/default...b;en-us;827805
from http://support.microsoft.com/?kbid=555017
Disable RPC Security for MSDTC Service on SQL Server
This step requires accessing and modifying the registry. If you have
not already done so, it is highly recommended that you back up the
registry at this time.
1. Click Start, click Run, type in "Regedt32", and click OK.
2. Select HKEY_LOCAL_MACHINE, then SOFTWARE, then Microsoft.
3. Right-click on MSDTC, point to Add, then select DWORD Value.
4. Rename the key from the default New Value #1 to
TurnOffRpcSecurity.
5. Double-click the new key and change the value to 1.
6. Close the Registry Editor and restart the SQL Server

No comments:

Post a Comment