Query timeout

Query timeout

Postby jorgesv13 » Sat 02 Aug 2014 01:21

Hello
I am using Devart.Data.PostgreSql 4.55.49.0 and I'm having a problem when executing a large query.
This query takes about 15 minutes to run (when executing it on pgAdmin)
However, when I execute it in my application, after a couple of minutes I get an error like "Can't write data on transport connection. There was an error because the connected part did not answer after a period of time". It looks like it comes from the Socket.Receive function.
The full stack trace and error (in spanish) is this:
Code: Select all
Devart.Data.PostgreSql.PgSqlException: No se puede escribir datos de en la conexión de transporte: Se produjo un error durante el intento de conexión ya que la parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido responder. ---> System.IO.IOException: No se puede escribir datos de en la conexión de transporte: Se produjo un error durante el intento de conexión ya que la parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido responder. ---> System.Net.Sockets.SocketException: Se produjo un error durante el intento de conexión ya que la parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido responder
   en System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
   en System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   --- Fin del seguimiento de la pila de la excepción interna ---
   en System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   en Devart.Common.af.a(Byte[] A_0, Int32 A_1, Int32 A_2)
   en Devart.Common.j.c(Byte[] A_0, Int32 A_1, Int32 A_2)
   en Devart.Common.q.e(Byte[] A_0, Int32 A_1, Int32 A_2)
   --- Fin del seguimiento de la pila de la excepción interna ---
   en Devart.Data.PostgreSql.PgSqlDataReader.e(Int32 A_0)
   en Devart.Data.PostgreSql.PgSqlCommand.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords)
   en Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
   en System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   en System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   en System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   en System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)


I think, I need to somehow increase the timeout of this socket function. How can I make it?
jorgesv13
 
Posts: 7
Joined: Thu 09 Oct 2008 00:54

Re: Query timeout

Postby Pinturiccio » Mon 04 Aug 2014 14:14

Try to assign a greater value to the PgSqlCommand.CommandTimeout property (by default it equals 30 seconds) or set it to 0. For more information, please refer to http://www.devart.com/dotconnect/postgresql/docs/?Devart.Data.PostgreSql~Devart.Data.PostgreSql.PgSqlCommand~CommandTimeout.html
Pinturiccio
Devart Team
 
Posts: 2021
Joined: Wed 02 Nov 2011 09:44


Return to dotConnect for PostgreSQL