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

From: Syam Pillai <syam(at)engravgroup(dot)com>
To: Dave Cramer <pg(at)fastcrypt(dot)com>
Cc: List <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: Statement is still active at the back-end even after closing
Date: 2017-08-31 16:05:26
Message-ID: CAD-KuVN73AcxzinEpeiW89cvC-3pUeuOCU_5r1nCuNFdkmFLsA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Just before the sleep, I already closed the Statement. Connection is not
closed because I want to use the connection for executing further
Statements.

On Thu, Aug 31, 2017 at 5:09 PM, Dave Cramer <pg(at)fastcrypt(dot)com> wrote:

> Seems pretty normal to me ? You have a sleep in there which is keeping it
> alive. what happens if you check it after the close ?
>
> Dave Cramer
>
> davec(at)postgresintl(dot)com
> www.postgresintl.com
>
> On 31 August 2017 at 04:50, Syam Pillai <syam(at)engravgroup(dot)com> wrote:
>
>> ​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
>>
>>
>

--
*Syam S. Pillai, **Director & Chief Technology Officer*
*ENGRAV Aviation Services & Systems Pvt. Ltd.*
*# 15, Level 1, Indradhanush, Gubbi Cross,*
*Kothannur PO, Bangalore - 560 077, India.*
*Phone: +91 80 2844 3740*
*http://www.engravgroup.com <https://www.engravgroup.com>*

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2017-08-31 16:40:53 Re: Statement is still active at the back-end even after closing
Previous Message Dave Cramer 2017-08-31 13:25:25 Fwd: A suggestion or a problem