RE: Timeout error from SqlDataReader even when ConnectionTimeout = 0

From: Cowboy (Gregory A. Beamer) - MVP (NoSpamMgbworld_at_comcast.netNoSpamM)
Date: 11/08/04


Date: Mon, 8 Nov 2004 09:33:02 -0800

Make sure you also set Command Time out to a large enough value. You may have
Command Timing out even though Connection timeout is not reached.

---
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA
***************************
Think Outside the Box!
***************************
"Dave Morse" wrote:
> Hi everyone,
> I intermittently get a timeout error raised from a loop in which I am 
> iterating through records with a SqlDataReader in order to build a 
> Hashtable. The command object has its CommandTimeout property set to 0, so 
> it should never 'time out', but every once in a while it will, and only in 
> this particular place in the code.
> 
> The code is similar to:
> 
> SqlDataReader reader = {function to get the datareader};
> while (reader.Read())
> {
>     hashTable.Add(reader.GetString(0), reader.GetString(1);
> }
> reader.Close();
> 
> The stack trace for the error is:
> Timeout expired.  The timeout period elapsed prior to completion of the 
> operation or the server is not responding.
>    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, 
> TdsParserState state)
>    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 
> exception, TdsParserState state)
>    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
>    at System.Data.SqlClient.TdsParser.ReadNetlib(Int32 bytesExpected)
>    at System.Data.SqlClient.TdsParser.ReadBuffer()
>    at System.Data.SqlClient.TdsParser.ReadByteArray(Byte[] buff, Int32 
> offset, Int32 len)
>    at System.Data.SqlClient.TdsParser.ReadString(Int32 length)
>    at System.Data.SqlClient.TdsParser.ReadSqlValue(_SqlMetaData md, Int32 
> length)
>    at System.Data.SqlClient.TdsParser.ProcessRow(_SqlMetaData[] columns, 
> Object[] buffer, Int32[] map, Boolean useSQLTypes)
>    at System.Data.SqlClient.SqlDataReader.PrepareSQLRecord(Int32 i)
>    at System.Data.SqlClient.SqlDataReader.GetSqlString(Int32 i)
>    at System.Data.SqlClient.SqlDataReader.GetString(Int32 i)
>    at MyObject.CallingFunction
> 
> Using reflector to look at the TdsParser.ReadNetlib function, it looks like 
> it will throw an error if it reads less bytes from the stream that it 
> expects, and the error it chooses to throw is a timeout exception. It cannot 
> be reproduced in a development environment, only on test machines, and 
> usually only on those that have limited memory, but there are no other 
> memory related problems, just this one.
> 
> If anyone has experienced this problem before or has any insight, it would 
> be greatly appreciated.
> 
> Thanks,
> Dave 
> 
> 
> 


Relevant Pages

  • Re: Really need help on this one
    ... Is there a way to read the output of a particular command into ... Heres a better example using ssh. ... set timeout $timeout ... exec kill -9 $pid ...
    (comp.lang.tcl)
  • Re: What if Expect buffer overflows
    ... expect_outwhen eof and timeout events happen. ... with your command and see what happens. ... Can anybody please guide what should I do to display the whole info? ...
    (comp.lang.tcl)
  • Re: Timeout error from SqlDataReader even when ConnectionTimeout = 0
    ... as well as the ConnectionTimeout. ... > Make sure you also set Command Time out to a large enough value. ... > Command Timing out even though Connection timeout is not reached. ... >> at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, ...
    (microsoft.public.dotnet.framework.adonet)
  • Re: Managing timing in Python calls
    ... I was briefly excited to learn about the callLater command which is just a convenience class for the wxTimer class. ... But getting my head around my AJAX problem versus my python implementation, I realized my use of those javascript structures were really just used because javascript doesn't allow any threading at all. ... Or should the termination be forced on ... class Timeout: ...
    (comp.lang.python)
  • Re: [mfi] command timeouts
    ... It's not only this process but all disk IO related processes. ... mfi0: COMMAND 0xffffffff80c3c040 TIMEOUT AFTER 732 SECONDS ...
    (freebsd-current)