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>*
>
>
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 |