canceling query due to user request - Mailing list pgsql-jdbc

From Anthony Presley
Subject canceling query due to user request
Date
Msg-id 1236208270.3656.46.camel@dellLaptop.resolution.com
Whole thread Raw
List pgsql-jdbc
Hi,

We recently acquired a multi-threaded JDBC reporting tool (for which we
do not have the source), which are running against PostgreSQL 8.3.6,
using the latest Type3 JDBC driver (I have also tried the Type4).

After a number of requests for reports (which are all fine), PostgreSQL
appears to start dropping connections, and we start seeing these in the
logs:

[ERROR] Mar 4, 2009 4:46:17 PM: ERROR: canceling statement due to user
request
org.postgresql.util.PSQLException: ERROR: canceling statement due to
user request
        at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1608)
        at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1343)
        at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194)


After doing a lot of Google searching, it appears that Oliver Jowett
encountered this problem a number of years ago (2003?), and discovered a
race condition in the JDBC driver relating to a Statement.Cancel
command.

However, later in 2004 and again in 2005, I found these threads:

http://archives.postgresql.org/pgsql-jdbc/2004-09/msg00027.php

http://archives.postgresql.org/pgsql-jdbc/2005-09/msg00046.php

Which imply that the patch hasn't been addressed.

I haven't ruled out that the report vendor isn't messing up their own
query cancellations, but I'm doing what I can to make sure that the
problem is on their end.

Has the patch to stop this condition been applied?  If not, what do I
need to do to apply it?

Is it likely that the problem is the vendor, or is this due to the
Statement Cancel being called?

Thanks very much.


--
Anthony


pgsql-jdbc by date:

Previous
From: Thomas Kellerer
Date:
Subject: Re: Inserting into a uuid column
Next
From: Hannu Krosing
Date:
Subject: What do people use for connection pooling with PostgreSQL JDBC