MSDTC Inconsistant Error RRS feed

  • Question


    We are using MSDTC for an inhouse C# .Net 2.0 Winform application with a SQL 2005 backend. The DTC is used for simple transactions within the code for batching saves, updates and deletes.


    Server is Windows Server 2003, clients are all XP. Latest service packs installed on everything.


    Here is an example of how we are using transactions in the code:


    Code Snippet

    using (TransactionScope lTransactionScope = new TransactionScope())


    lintRowsUpated = ProgramCommitDB.UpdateStatusType(aProgramCommit);




    We have configured DTC on both the server and each client, exactly how is suggested from Microsoft. (Allow MSDTC through the client firewall and component services -> msdtc security config -> enable appropriate settings)


    On our three development machines, DTC works perfectly, no issues at all. Now that we have attempted to install the program on some test clients, we are getting the below error:


    Code Snippet

    System.Transactions.TransactionManagerCommunicationException: Communication with the underlying transaction manager has failed. ---> System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.
       at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim)
       at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)
       --- End of inner exception stack trace ---
       at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)
       at System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx)
       at System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx)
       at System.Transactions.EnlistableStates.Promote(InternalTransaction tx)
       at System.Transactions.Transaction.Promote()
       at System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction)
       at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)
       at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)
       at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)
       at System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)
       at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)
       at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
       at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       at System.Data.SqlClient.SqlConnection.Open()



    We have tried the following things, with no success:

    • Completely disabling the firewall on the client machines
    • Adding entries for the clients in HOSTS and LMHOSTS file on server
    • Adding entry for the server in HOSTS and LMHOSTS on the client
    • Logging into client machines with both local admin and domain accounts
    • Enabling every single option in the MSDTC security config dialog

    We also tried the DTCPing utility and it failed with the following reason:


    Code Snippet

    Error(0x2AFC) at nameping.cpp @62
    -->11004(The requested name is valid, but no data of the requested type was found.)
    Error(0x6BA) at ServerManager.cpp @453
    -->RPC reverse BIND failed
    -->1722(The RPC server is unavailable.)
    Reverse Binding to MIALT02906 Failed
     In  GUID
     Out GUID
    Reverse BIND FAILED
    Session Down



    Help please! Feel like we have tried just about everything to get this to work and made no progress what so ever the past few days.


    Thursday, May 15, 2008 9:06 PM