MS DTC problem when promoting transactions

  • I am developing an asp.net application on a machine that is sitting behind a router/firewall and am connecting to a db server that is residing on a remote network. I am having issues with the .net TransactionScope as it tries to sync up the transactions using MS DTC. I have followed the tips about changing registry settings, have ensured that the right ports are open and that the DTC services are allowed access on both servers. The transactions seem to be launched with the same GUID on both the db server as well as my local machine but then the following errors shows up. All help much appreciated. If there is a better forum for this post please let me know.

    Thanks,

    Olja

    Error HRESULT E_FAIL has been returned from a call to a COM component.

    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: Error HRESULT E_FAIL has been returned from a call to a COM component.

    Stack Trace:

    [COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.]

    System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim) +0

    System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken) +221

    [TransactionManagerCommunicationException: Communication with the underlying transaction manager has failed.]

    System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken) +339

    System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx) +71

    System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx) +183

    System.Transactions.EnlistableStates.Promote(InternalTransaction tx) +12

    System.Transactions.Transaction.Promote() +53

    System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction) +29

    System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts) +165

    System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx) +488

    System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx) +50

    System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction) +47

    System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction) +28

    System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +1244

    System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +85

    System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +89

    System.Data.SqlClient.SqlConnection.Open() +160

  • it seems that you don't have MSDTC enabled on both computers

    _______________________________________________

    Causing trouble since 1980

    blog: http://weblogs.sqlteam.com/mladenp

    SSMS Add-in that does a few things: www.ssmstoolspack.com

  • I have DTC running on both machines. Actually as I run the given code, I can see that a transaction with the same GUID is initiated on both machines.

    Thanks,

    Olja

Viewing 3 posts - 1 through 2 (of 2 total)

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