Hello David & David,

I have a similar problem -- a lot of idle transactions.  I'm using the
PostgreSQL JDBC driver.  The connections look like this:

 pid  | wait_event |         state_change          |
  backend_start         | xact_start |          query_start          |
  ?column?     | query

-------+------------+-------------------------------+-------------------------------+------------+-------------------------------+-----------------+--------

 32506 | ClientRead | 2020-04-23 09:29:05.6793-07   | 2020-04-23
01:00:19.612478-07 |            | 2020-04-23 09:29:05.679275-07 |
00:00:00.000025 | COMMIT

 32506 | ClientRead | 2020-04-23 09:30:33.247119-07 | 2020-04-23
01:00:19.612478-07 |                               | 2020-04-23
09:30:33.247109-07 | 00:00:00.00001  | COMMIT

 32506 | ClientRead | 2020-04-23 09:31:31.506914-07 | 2020-04-23
01:00:19.612478-07 |                               | 2020-04-23
09:31:31.506905-07 | 00:00:00.000009 | COMMIT

 32506 | ClientRead | 2020-04-23 09:32:32.06656-07  | 2020-04-23
01:00:19.612478-07 |            | 2020-04-23 09:32:32.066552-07 |
00:00:00.000008 | COMMIT

 32506 | ClientRead | 2020-04-23 09:36:51.579939-07 | 2020-04-23
01:00:19.612478-07 |            | 2020-04-23 09:36:51.579931-07 |
00:00:00.000008 | COMMIT

It seems like they haven't been doing anything for a long time, but the
state_change keeps getting updated.  Is it possible that state_change is
being updated, maybe by the JDBC driver?

Do you recommend using PgBouncer with JDBC?

-----
Si Chen
Open Source Strategies, Inc.

Our Mission: https://www.youtube.com/watch?v=Uc7lmvnuJHY



On Thu, Apr 23, 2020 at 11:41 AM David G. Johnston <
david.g.johns...@gmail.com> wrote:

> On Thursday, April 23, 2020, David Gauthier <davegauthie...@gmail.com>
> wrote:
>
>> Hi:
>>
>> psql (9.6.7, server 11.3) on linux
>>
>> I have what appear to be a log of idle connections to my DB.  Query of
>> pg_stat_activity indicates well over half (127/206) are like this...
>>
>>
>> dvdb=# select state_change,wait_event_type,wait_event,state,backend_type
>> from pg_stat_activity where query = '';
>>          state_change          | wait_event_type |     wait_event      |
>> state |         backend_type
>>
>> -------------------------------+-----------------+---------------------+-------+------------------------------
>>  2020-04-23 12:57:58.215854-04 | Client          | ClientRead          |
>> idle  | client backend
>>
>> What does this indicate?
>>
>> The vast majority of the connections are through perl/dbi.   If a
>> connection is made, and is currently not doing anything, does it appear in
>> pg_stat_activity as "idle" ?  If, in DBI, $dbh->disconnect is used whenever
>> the DB is no longer needed, will it disconnect from the DB and NOT appear
>> as an idle in pg_stat_activity ?
>>
>> If there are any other column s in pg_stat-activity you'd like to see, or
>> any other query in any of the system tables, please advise.
>>
>
> If the server has an active, authenticated, connection/process running it
> shows up here.  Yes, idle is the state used to denote the the session is
> “not doing anything”...
>
> $dbh->disconnect typically will indeed close the connection.  There can be
> exceptions if your architecture uses connection pooling.
>
> David J.
>
>

Reply via email to