Dependancy could not be created


Badge +6

We have setup a brand new k2 Blackpoint and SharePoint 2010 environment, with K2 on one server and SP2010 on another. When you browse the worklists on the SP site, they connect to the k2 server fine, you can manage the K2 settings for sites etc, it all works fine but when a new list or library is created on any SP site, and you try to create a SMO for the new item, we get the following error, does anyone have an idea on what to look at cause I have checked the SPN settings on both machines etc and can't see anything wrong, I have even added incoming and outgoing rules on the firewalls of both servers for the MSDTC process:


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, 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.GetTransactionCookie(Transaction transaction, Byte[] whereAbouts)   at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)   at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)   at System.


13 replies

Userlevel 4
Badge +14

Are you 100% sure the DTC is running on both the K2 Server and the SQL server? If so try setting it that no authentication is required.


HTH


Vernon

Badge +6

They are both running, how would one go about setting authentication to off?

Userlevel 4
Badge +14

Navigate to Admin tools > Component services and expand until you see Local DTC. Right click here and go to properties > Security tab. In the Transaction Manager Communication section you will see it.


If possible can you also do a test when disabling the firewalls completely?


Vernon

Badge +6

Do I need to set SPN's for the SQL Server box as well ? Currently there are only SPNs for the K2 and SharePoint servers. This is the first time I have had SQL Server on a different server to either K2 or SP.

Userlevel 4
Badge +14

No that is not needed, there is no double hop involved to SQL as only the K2 Server communicates with it.

Badge +6

I have turned the firewalls off on all 3 servers, and checked that the Local DTS has the "No authentication required" but still getting the error.

Badge +6

The SP site here has an external URL for the client staff to connect to it. I was just checking the SPN's again and see the SPN for the k2 service account on the SP server is using the SP server name, surely it should be for the url instead ? so rather setspn -A HTTP/www.url.co.za DomainUser instead of setspn -A HTTP/serverName Domainuser ?


 

Userlevel 4
Badge +14

Just to verify that the DTC is working as expected, have you tried using the DTCPing utility to verify communication between the K2 Server and SQL? The tool can be found http://support.microsoft.com/kb/918331/en-us


 


One more question is you able to deploy a process successfully and is this by any chance a NLB setup?


 


The SPN should be fine on server name.


 


Regards


Vernon

Badge +6

I have spent the day with a K2 consultant on site here, we have done everything from DTCPing to everything else and he can't figure it out either. Any more ideas?

Badge +10

Just throwing an idea out there that I saw posted at:  http://blogs.microsoft.co.il/blogs/idof/archive/2010/07/19/debugging-distributed-transactions-msdtc-network-problems.aspx


I'm wondering if its possible the dns suffix on the sharepoint, k2 and database server are different that may cause an issue as described in the post.


It also refers to a group policy setting that you might want to double check it wouldn't be affecting the SharePoint server.

Userlevel 4
Badge +14

together with the troubleshooting tips from Tim, are we also 100% sure that the DTCPing util passes both ways, From K2 to SQL and SQL to K2?

Badge +6

Yup, we have run the following DTCPing tests:


K2 -> SharePoint


SharePoint -> k2


SQL server -> k2


K2 -> SQL server


SharePoint -> SQL server


SQL server -> SharePoint


All passed successfully. We are going to check everything in the blog post that Tim suggested. Will keep you guys updated.

Badge +6

Okay so we found two issues, and have fixed them and it is all happy now.


1) The CID for MSDTC on each server was the same, we have changed these.


2) MSDTC was faulty on the K2 Server, to fix this we unistalled, restarted, installed and restarted again. Exactly the same config as before but it is now happy and everything works.

Reply