RE: [EXT] Re: DBeaver session populating pg_stat_activity.backend_xmin

Поиск
Список
Период
Сортировка
От Dirschel, Steve
Тема RE: [EXT] Re: DBeaver session populating pg_stat_activity.backend_xmin
Дата
Msg-id DM6PR03MB4332E40CEF09DA8FE89F5A49FACE9@DM6PR03MB4332.namprd03.prod.outlook.com
обсуждение исходный текст
Ответ на Re: DBeaver session populating pg_stat_activity.backend_xmin  (Thomas Kellerer <shammat@gmx.net>)
Ответы Re: [EXT] Re: DBeaver session populating pg_stat_activity.backend_xmin  (Ron <ronljohnsonjr@gmail.com>)
Re: [EXT] DBeaver session populating pg_stat_activity.backend_xmin  (Christophe Pettus <xof@thebuild.com>)
Список pgsql-general
>> When I connect to the database through DBeaver with those 2 default
>> settings changed and find that session in pg_stat_activity column
>> xact_start is populated along with backend_xmin.  Those get populated
>> just by logging in.

>As you found out in the log, the driver runs DbEaver run multiple SQL statements during the "log in".
>And the first query will start a transaction, but as autocommit is disabled, nothing will end that transaction.

Yes, I agree with that.  And if I set autocommit off in psql I see the same where a select will start a transaction.

>> The problem is users will connect using DBeaver and their sessions
>> will sit idle.

>Idle is not a problem, "idle in transaction" is.

From my perspective "idle in transaction" isn't necessarily a problem (although I don't like seeing sessions sitting
likethat for a long time).  The problem is when pg_stat_activity.backend_xmin is populated-  that can prevent
autovacuumfrom cleaning up old records.  Again, if I login to psql, set auto commit off and run a select I see
pg_stat_activity.xact_startpopulated but pg_stat_activity.backend_xmin is NOT populated.  So that transaction from psql
wouldnot prevent autovacuum from cleaning up.  But when this happens through DBeaver not only is
pg_stat_activity.xact_startpopulated but pg_stat_activity.backend_xmin is also populated.  My main question is what
couldDBeaver be doing to get pg_stat_activity.backend_xmin populated?  It doesn't happen when running a test in psql.
Soat this point I'm unable to duplicate this issue in psql running the same thing I think DBeaver is running.   Maybe
ifI asked the question a little differently-  in psql if I set autocommit off and run a select what else do I need to
runto get pg_stat_activity.backend_xmin populated through that session?  Is there a certain "type" of select I could
runto get it populated?  I know if I insert or update or delete a row it will get populated but I also know DBeaver is
notexecuting an insert/update/delete. 

>> It executes the exact same commands except when the 2 default DBeaver
>> settings are changed to show the issue it is issuing a BEGIN and
>> COMMIT around one block of code and then at another part of code it
>> issues a BEGIN, runs some queries, and never issues a COMMIT.

>Yes, that's how turning off autocommit works. As soon as a statement is sent through the JDBC driver, the driver will
senda BEGIN to start the transaction, but the the application (or the user) is responsible to end it through a COMMIT
(orROLLBACK). 

Thanks




В списке pgsql-general по дате отправления:

Предыдущее
От: Thomas Kellerer
Дата:
Сообщение: Re: DBeaver session populating pg_stat_activity.backend_xmin
Следующее
От: Ron
Дата:
Сообщение: Re: [EXT] Re: DBeaver session populating pg_stat_activity.backend_xmin