The dreaded "unable to begin a distributed transaction"

  • We've looked all over for a solution to this one, but haven't come across anyone with the same environments and symptoms. We're using a Remedy application which makes call to a (simple select) stored procedure on a linked server. Unfortunately, Remedy inserts a 'begin transaction' and 'commit transaction' before and after each direct call to SQL Server. We have no control over that part.

    So what's happening is this:

    SERVER 1:

    Windows Server 2003 Standard Edition Service Pack 1

    SQL Server 2000 Standard Edition 8.00.818(SP3)

    is sending the following command:

    begin transaction

    exec ADMINDBLINK.admindb.dbo.spr_remedy_code_promotion_type_list

    commit transaction

    to SERVER 2:

    Windows Server 2000 5.00.2195 Service Pack 4

    SQL Server 2000 Enterprise Edition 8.00.760(SP3)

    and getting the following error:

    Server: Msg 7391, Level 16, State 1, Line 6

    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].

    We get no error, and the sproc returns the correct results when sending the same command from Server 1 to:

    SERVER 3:

    Windows Server 2003 Standard Edition Service Pack 1

    SQL Server 2000 Standard Edition 8.00.2039(SP4)

    Any ideas?

  • Is MS DTC running on Server 2?

  • Yes, it is.

  • Did you check this?

    You receive error 7391 when you run a distributed transaction against a linked server

    http://support.microsoft.com/default.aspx?scid=kb;en-us;329332&Product=sql



    Mark

  • Yes, we did. The article applies to Windows Server 2003 which is the originating server (Server 1). Server 1 is configed as per the article, and does work with another Windows Server 2003 (Server 3).

  • That did it! Problem was that on the originating WinServer 2003 (Server 1), the Component Services / MSDTC / Transaction Configuration / Security Configuration / Transaction Manager Configuration was set to "Mutual Authentication Required" instead of "No Authentication Required".

    Thanks all for the quick response. Back to work ...

Viewing 7 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic. Login to reply