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

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Syam Pillai <syam(at)engravgroup(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:40:53
Message-ID: CADK3HHJexg2aJtmzDqHH5guD_9tgP=OWDp4trLUP8KkfDRSXwg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

So this is perfectly normal. Closing the statement only closes resources on
the driver side there is no interaction with the server.

Dave Cramer

davec(at)postgresintl(dot)com
www.postgresintl.com

On 31 August 2017 at 12:05, Syam Pillai <syam(at)engravgroup(dot)com> wrote:

> 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("j
>>> dbc: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 <+91%2080%202844%203740>*
> *http://www.engravgroup.com <https://www.engravgroup.com>*
>
>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message David G. Johnston 2017-08-31 16:48:58 Re: Statement is still active at the back-end even after closing
Previous Message Syam Pillai 2017-08-31 16:05:26 Re: Statement is still active at the back-end even after closing