0

I am receiving the following error message randomly on stored procedure execution. It appears the SQL connection is timing out attempting to derive parameters for the procedure. The issue started yesterday (on our production system) around 7am. No environment changes that day/the night before. Running servers in Azure. We have extended connection/command timeout to 60 seconds. Still occurs.

The stored procedure '{nameOfProc}' doesn't exist. at System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand command)

Here is the Stack Trace:

System.IndexOutOfRangeException: PARAMETER_NAME
at System.Data.SqlClient.SqlDataReader.GetOrdinal(String name) at System.Data.SqlClient.SqlDataReader.get_Item(String name) at System.Data.SqlClient.SqlCommand.DeriveParameters() at System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand command) at SQLDataAccess.Data.SQLDataAccess.FillDataSet(String strCommandText, SortedList slParameters, Int32 intMaxRowsReturned, Int32 intStartRecord, String strDataSetTableName, Int32 intCommandTimeOut, DataSet& dsResults, DataSet& dsMessage)

System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action'1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader() at System.Data.SqlClient.SqlCommand.DeriveParameters() at System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand command) at SQLDataAccess.Data.SQLDataAccess.FillDataSet(String strCommandText, SortedList slParameters, Int32 intMaxRowsReturned, Int32 intStartRecord, String strDataSetTableName, Int32 intCommandTimeOut, DataSet& dsResults, DataSet& dsMessage) ClientConnectionId:23d567df-9bc6-49e6-aa7e-ac1dfb81a0b7 Error Number:-2,State:0,Class:11

System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first.
   at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)
   at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
   at SQLDataAccess.Data.SQLDataAccess.FillDataSet(String strCommandText, SortedList slParameters, Int32 intMaxRowsReturned, Int32 intStartRecord, String strDataSetTableName, Int32 intCommandTimeOut, DataSet& dsResults, DataSet& dsMessage)

Any help would be appreciated!!

Nick

James Z
  • 12,209
  • 10
  • 24
  • 44
  • 2
    Did you see this line? "System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first." – Sean Lange Sep 24 '15 at 18:52
  • 1
    Did you realize any new code in the last couple days? Most likely you are not correctly closing an existing connection somewhere in your code. – Sean Lange Sep 24 '15 at 18:53
  • We haven't released any new code over the last few days. In reference to the article, We have tried turning on MARS, but it made everything get worse :( – user1258057 Sep 24 '15 at 19:02

0 Answers0