Re: Implementation of query timeout - Mailing list pgsql-jdbc

From Radosław Smogura
Subject Re: Implementation of query timeout
Date
Msg-id 200910301835.25701.rsmogura@softperience.eu
Whole thread Raw
In response to Implementation of query timeout  (Radosław Smogura <rsmogura@softperience.eu>)
List pgsql-jdbc
Dnia piątek 30 październik 2009 o 08:47:02 napisałeś:
> Radoslaw Smogura wrote:
> > I read a TODO list, and I decided to help a bit. So I've tried to
> > implement queryTimeout, currently ony for non-batch statements. You can
> > see code, at http://rsmogura.net/pgsql/pgsql_jdbc_querytimeout.tar.bz2
> > and analyze, chceck and test it.
> >
> > Small description how it works.
> >
> > 1. When the query is executed it checks if timeout > 0.
> > 2. If yes it creates TimerTask and add it to the queue, then sends the
> > query to server.
> > 3. On timeout and if statement hasn't ended cancelStatement is called().
>
> Maybe I am missing something there, but wouldn't it be much easier
> to send the following to the server:
>
> SET statement_timeout=<n>
>
> Then all statements that time out throw an exception with SQLSTATE 57014,
> and there's no need for separate threads and canceling the query.
>
> Yours,
> Lauernz Albe
>
Hello,
SET statement_timeout only set timeout for statement processing on server, it
not include the time of transfering data, which can be long for BLOBs. I've
found few posts that this is not enaugh solution "SET statement_timeout" from
above reasons. It's way those timeout is implemented in JDBC side.

Kind regards,
Radek Smogura.

pgsql-jdbc by date:

Previous
From: "Albe Laurenz"
Date:
Subject: Re: Implementation of query timeout
Next
From: Richard Broersma
Date:
Subject: Bug - DatabaseMetaData.getCatalogs() was [Novice] Can't get list of databases with \list