Statement is still active at the back-end even after closing

From: Syam Pillai <syam(at)engravgroup(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Statement is still active at the back-end even after closing
Date: 2017-08-31 08:50:01
Message-ID: CAD-KuVN=Q8HTQaBrR850c7JoT6Qfq_OtvMYqtp2utgVxKr9-nA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

​Not sure if this was reported earlier.

I am using PostgreSQL 9.5.8 and JDBC driver 42.1.4

If I execute the following statements and at Position #1, if I check the
pg_stat_activity from another connection (let's say from the psql
application), I can see that the 'Statement s' is still active:

try {
Class.forName("org.postgresql.Driver");
Connection connection = null;
connection =
DriverManager.getConnection("jdbc:postgresql://localhost:5432/cadup","user",
"password");
Statement s = connection.createStatement();
ResultSet rs =s.executeQuery("SELECT 1 FROM core.Person");
if(rs.next()) {
System.err.println("Yes, we got a row!");
} else {
System.err.println("No rows found");
}
s.close();
Thread.sleep(10000); // Position #1
connection.close();
} catch(Exception e) {
e.printStackTrace();
}

===============
Query executed to check the activity:
SELECT pid, datname, now() - pg_stat_activity.query_start AS duration,
state, query
FROM pg_stat_activity
WHERE now() - pg_stat_activity.query_start > interval '1 second';
Output from psql:
pid | datname | duration | state | query
-------+---------+-----------------+-------+---------------------------
17775 | xxxx | 00:00:07.481294 | idle | SELECT 1 FROM core.Person

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2017-08-31 13:09:59 Re: Statement is still active at the back-end even after closing
Previous Message Piyush Sharma 2017-08-28 11:53:36 [pgjdbc/pgjdbc] 29f574: doc: Added quotes to URL in '@see' tag over org.po...