Skip to main content

Hi,


I get below errors when trying to deploy the K2 SmartObject



Deploy SmartObjects: Task error: SmartObject Server Exception: Dependancy could not be created: System.Transactions.TransactionManagerCommunicationException: Communication with the underlying transaction manager has failed. ---> System.Runtime.InteropServices.COMException (0x8004D02B): The MSDTC transaction manager was unable to pull the transaction from the source transaction manager due to communication problems. Possible causes are: a firewall is present and it doesn't have an exception for the MSDTC process, the two machines cannot find each other by their NetBIOS names, or the support for network transactions is not enabled for one of the two transaction managers. (Exception from HRESULT: 0x8004D02B)


   at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Bytet] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim)


   at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(ByteB] propagationToken)


   --- End of inner exception stack trace ---


   at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Bytek] 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, Byteo] whereabouts)


   at System.Data.SqlClient.SqlInternalConnection.GetTransactionCookie(Transaction transaction, Bytet] whereAbouts)


   at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)


   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()


   at SourceCode.Dependancy.Connection.OpenConnection(String connectionString)


   at SourceCode.Dependancy.ScDependancyService.ResolveClassType(Guid classGuid)


   at SourceCode.Hosting.Services.DependancyService.VerifyObjects(List`1 parents)


   at SourceCode.Hosting.Services.DependancyService.CreateDepenancyBatch(Dictionary`2 depenancyBatch). 



 


I have tried below:


1. Turn off the firewall for both machines


2. Reinstall the MSDTC for 1 of the machines


 


Any suggestion please?


 


Thank you.


 

Have you verified the MSDTC configuration on both K2 Server and SQL server?


http://help.k2.com/helppages/k2blackpearl1420/webframe.html?install_dtccomponents.html


You can also try setting the Transaction Manager Config to use “No Authentication Required” as a test.


If the above doesn’t resolve the issue, try using a tool like DTCPing to test the communication between the servers.


http://support.microsoft.com/kb/918331/en-us


Run the tool between the K2 Server and the SQL server and post the logs.


HTH


Vernon


Both MSDTC configuration are:


1. Enable Network DTC Access


2. Allow Remote Clients and Remote Administration


3. Allow Inbound and Outbound with no Authentication required.


4. Enable XA Transactions and SNA LU 6.2 Transactions.


DTCPing in K2 Server and SQL server:


Problem:fail to invoke remote RPC method
Error(0x6D9) at dtcping.cpp @303
-->RPC pinging exception
-->1753(There are no more endpoints available from the endpoint mapper.)
RPC test failed


 Thank you!


Sorry for the late response, you should reply on my reply, this way I get notification : ) Two things come to mind here. Either there was some server cloning, in this case the Server ID’s will be the same and therefor the failure. To fix this remove DTC from the one server and re-add it to create a new Server ID. Run msdtc –uninstall/-install and then reconfigure the security settings. Second thing and the more likely one is there is a firewall enabled between K2Server and SQL that blocks the ports. Disable all fire walls on both SQL and K2Server and run the DTCPing tool again to see if it connects.


HTH


Vernon


Reply