Thread: What is causing 'canceling statement due to user request' ?
Hi all, I know of 2 causes: - hit CTRL-C in the psql client; - have a non-zero statement timeout and have the statement actually time out; But I am seeing this via JDBC which can't cancel a statement AFAIK, and the statement_timeout is set to 0 (in the config file globally, and there's no override for the users, nor in our JDBC code). I wonder if there is any other scenario which can trigger this error ? I found a lot of them in our logs, last night we had hundreds of them, but now that I looked it happened sporadically in the past too... Could some network problem trigger this ? TIA, Csaba.
Csaba Nagy <nagy@ecircle-ag.com> writes: > I wonder if there is any other scenario which can trigger this error ? Anything sending SIGINT to a backend process would result in this behavior. We've heard rumors that there are platforms wherein SIGINT is used for strange purposes like enforcing process-runtime limits. regards, tom lane
On 23.10.2006 16:14 Csaba Nagy wrote: > Hi all, > > I know of 2 causes: > > - hit CTRL-C in the psql client; > - have a non-zero statement timeout and have the statement actually > time out; > > But I am seeing this via JDBC which can't cancel a statement AFAIK JDBC *can* cancel a running statement. You just need to call cancel() from another thread. http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html#cancel() Works great in my SQL front end. Thomas
> JDBC *can* cancel a running statement. You just need to call cancel() > from another thread. > > http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html#cancel() > > Works great in my SQL front end. Are you sure ? Ever tried to cancel a long running statement and see if it is still running in the DB after you cancelled it on the JDBC side ? Cheers, Csaba.
On 27.10.2006 10:13 Csaba Nagy wrote: >> JDBC *can* cancel a running statement. You just need to call cancel() >> from another thread. >> >> http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html#cancel() >> >> Works great in my SQL front end. > > Are you sure ? Ever tried to cancel a long running statement and see if > it is still running in the DB after you cancelled it on the JDBC side ? Hmm. Pretty sure, I did not really check the server itself, but I could see that the CPU load (running a local Postgres) went down immediately, which I took that the statement was no longer processed by the server. Thomas