AnsweredAssumed Answered

SQL Error : There is already an open DataReader associated with this Command which must be closed first

Question asked by thomasvdb on Jul 15, 2014
Latest reply on Aug 27, 2014 by thomasvdb

Hey,

 

I'm using Nintex Workflow 3.0.7.0 with Sharepoint SP1 (the correct one)

I have workflow that has a switch action.

One of the branches create a task and does a couple of webrequest there after the workflow should be ended with end workflow action.

For Nintex the workflow has a completed state but for SharePoint the status is still In Progress.

I did notice that in the same milisecond 2 connections were opened to the Nintex SQLDatabase.

When I turn on the verbose logging for the Nintex product I found following errors.

Any ideas in how this can be solved?

 

Error establishing database connection.: System.Transactions.TransactionException: The operation is not valid for the state of the transaction. ---> System.Transactions.TransactionPromotionException: Failure while attempting to promote transaction. ---> System.Data.SqlClient.SqlException: There is already an open DataReader associated with this Command which must be closed first. ---> System.ComponentModel.Win32Exception: The wait operation timed out     -
-- End of inner exception stack trace ---   
at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest)   
at System.Data.SqlClient.SqlDelegatedTransaction.Promote()     -
-- End of inner exception stack trace ---   
at System.Data.SqlClient.SqlDelegatedTransaction.Promote()   
at System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx)   
at System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx)     -
-- End of inner exception stack trace ---   
at System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction)   
at System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification)   
at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)   
at System.Data.ProviderBase.DbConnectionPool.PrepareConnection(DbConnection owningObject, DbConnectionInternal obj, Transaction transaction)   
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)   
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)   
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)   
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)   
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)   
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)   
at System.Data.SqlClient.SqlConnection.Open()   
at Nintex.Workflow.Administration.Database.OpenConnectionInternal(String connectionString)   
at Nintex.Workflow.Administration.ContentDatabase.OpenConnection()   
at Nintex.Workflow.Administration.Database.ExecuteReader(SqlCommand command, CommandBehavior behavior) (Build:3070)

and:

: Nintex.Workflow.NWException: Could not retrieve workflow name for instance id. ---> System.Transactions.TransactionException: The operation is not valid for the state of the transaction. ---> System.Transactions.TransactionPromotionException: Failure while attempting to promote transaction. ---> System.Data.SqlClient.SqlException: There is already an open DataReader associated with this Command which must be closed first. ---> System.ComponentModel.Win32Exception: The wait operation timed out     -
-- End of inner exception stack trace ---   
at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest)   
at System.Data.SqlClient.SqlDelegatedTransaction.Promote()     -
-- End of inner exception stack trace ---   
at System.Data.SqlClient.SqlDelegatedTransaction.Promote()   
at System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx)   
at System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx)     -
-- End of inner exception stack trace ---   
at System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction)   
at System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification)   
at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)   
at System.Data.ProviderBase.DbConnectionPool.PrepareConnection(DbConnection owningObject, DbConnectionInternal obj, Transaction transaction)   
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)   
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)   
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)   
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)   
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)   
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)   
at System.Data.SqlClient.SqlConnection.Open()   
at Nintex.Workflow.Administration.Database.OpenConnectionInternal(String connectionString)   
at Nintex.Workflow.Administration.ContentDatabase.OpenConnection()   
at Nintex.Workflow.Administration.Database.ExecuteReader(SqlCommand command, CommandBehavior behavior)   
at Nintex.Workflow.NWWorkflowContext.DRs=(Guid Dhs=, SPWeb Dxs=, WorkflowCategory EBs=, WorkflowType& ERs=, String& Ehs=)     -
-- End of inner exception stack trace --- (Build:3070)

Outcomes