Re: Cancel query based on a timeout

From: "Carl E(dot) McMillin" <carlymac(at)earthlink(dot)net>
To: "'Stijn Vanroye'" <s(dot)vanroye(at)farcourier(dot)com>, <pgsql-general(at)postgresql(dot)org>
Subject: Re: Cancel query based on a timeout
Date: 2004-05-10 15:31:04
Message-ID: 000a01c436a3$ce6fa950$6600a8c0@DEVSONY
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

We are working on a similar problem - timeouts of long-running requests. We
are also currently using 7.3.4 for Postgres, but we are using Java, JDBC,
and PL/PGSql.

Question: Does Delphi have structured exception-handling? The solution
we've found requires the ability to descriminate between exception-types and
the ability to catch and throw execeptions in a safe fashion. If Delphi
does have SHE, then I think our solution could be mapped into Delphi without
much trouble.

The solution we've come up with is to add a "waiting procedure" table to the
database, along with some stored-procedures to manage the table. We call
this the "waitingproc" subsystem.

The "waitingproc" subsystem can then be used by client-side code (thru JDBC
calls; ODBC should be able to handle the particular subset we are dealing
with here) to detect when a server-side process overruns its alloted time.
The client then has the option to abort the transaction and/or restart the
server-side process.

Of course, the problem we are throwing the "waitingproc" subsystem at is not
your problem, but I think some of the core concepts/procedures are usuable.

Let me know if you'd like the Java and PL/PGSql source. The Java code is
fairly extensive and is mixed in with other business-logic, but I can help
you thru the rough parts.

Carl <|};-)>

-----Original Message-----
From: pgsql-general-owner(at)postgresql(dot)org
[mailto:pgsql-general-owner(at)postgresql(dot)org] On Behalf Of Stijn Vanroye
Sent: Monday, May 10, 2004 3:55 AM
To: pgsql-general(at)postgresql(dot)org
Subject: [GENERAL] Cancel query based on a timeout

Hi List,

I'm running a query on a not-so-small db. Mostly this query runs fast
enough, but every once in a while the query takes a long time to complete in
wich case the users start banging away on the keyboard :-).

What we would like to do is cancel the query after a certain time-out (e.g.
30 sec.) Is there some way to send a command to the postgres sever to stop
running the query?

We're using Postgres 7.3.4 and the latest ODBC driver. Programming is done
with Borland Delphi 7

Regards,

Stijn Vanroye

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
message can get through to the mailing list cleanly

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Sally Sally 2004-05-10 15:45:01 basic question (shared buffers vs. effective cache size)
Previous Message Carlos Oliva 2004-05-10 15:27:32 Re: Option required to dump bytea fields?