Thread: idle in transaction

idle in transaction

From
Warren Little
Date:
We recently upgraded postgres from 7.3 to 7.4, along with the JDBC jar,
and noticed all the backend processes/connections are left in the "idle
in transaction" state where before they where left in the "idle" state.
Has something changed in the 7.4 jdbc driver vs 7.3 which might be
causing this?
Note
We call setAutoCommit(FALSE) on every connection when created.



--
Warren Little
Senior Vice President
Secondary Marketing
Security Lending Wholesale, LC
www.securitylending.com
Tel: 866-369-7763
Fax: 866-849-8082

Re: idle in transaction

From
"Soeren Laursen"
Date:
Just a very quick thought, have You issued a:
connection.commit();

Regards,

Søren,
Subject:            [ADMIN] idle in transaction
From:               Warren Little <wlittle@securitylending.com>
To:                 pgsql-admin@postgresql.org
Date sent:          Sun, 15 Feb 2004 09:23:32 -0700

> We recently upgraded postgres from 7.3 to 7.4, along with the JDBC jar,
> and noticed all the backend processes/connections are left in the "idle
> in transaction" state where before they where left in the "idle" state.
> Has something changed in the 7.4 jdbc driver vs 7.3 which might be
> causing this?
> Note
> We call setAutoCommit(FALSE) on every connection when created.
>
>
>
> --
> Warren Little
> Senior Vice President
> Secondary Marketing
> Security Lending Wholesale, LC
> www.securitylending.com
> Tel: 866-369-7763
> Fax: 866-849-8082
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org



Re: idle in transaction

From
"Marc Mitchell"
Date:
We see the exact same condition when setting "setAutoCommit(FALSE)".
However, we expected that situation based on what we understand as the
way such a setting manifests itself within the
Multi-Statement-Transaction handling of Postgres.  Furthermore, we saw
this exact same behavior under at least 7.3.4, if not 7.3.2 and maybe
even 7.2.something.

So long as the idled transaction isn't holding any locks on any data
resources, I don't know if this condition is a bad thing.  It would be
nice to be able to differentiate between a transaction that has been
"declared" but has yet to really begin issuing any statements and take
locks from transactions that are idle "mid-transaction".  The latter of
which spells death for a multi-user, OLTP application.

I'll be curious to hear others experience with this.

Marc Mitchell
Enterprise Information Solutions, Inc.
Downers Grove, IL 60515
marcm@eisolution.com

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Warren Little
Sent: Sunday, February 15, 2004 10:24 AM
To: pgsql-admin@postgresql.org
Subject: [ADMIN] idle in transaction


We recently upgraded postgres from 7.3 to 7.4, along with the JDBC jar,
and noticed all the backend processes/connections are left in the "idle
in transaction" state where before they where left in the "idle" state.
Has something changed in the 7.4 jdbc driver vs 7.3 which might be
causing this? Note We call setAutoCommit(FALSE) on every connection when
created.



--
Warren Little
Senior Vice President
Secondary Marketing
Security Lending Wholesale, LC
www.securitylending.com
Tel: 866-369-7763
Fax: 866-849-8082

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org


Re: idle in transaction

From
Tom Lane
Date:
"Marc Mitchell" <marcm@eisolution.com> writes:
> So long as the idled transaction isn't holding any locks on any data
> resources, I don't know if this condition is a bad thing.  It would be
> nice to be able to differentiate between a transaction that has been
> "declared" but has yet to really begin issuing any statements and take
> locks from transactions that are idle "mid-transaction".

You guys should probably take this to the pgsql-jdbc list, since that's
where the people who know the innards of the JDBC driver hang out.

I just saw a patch go by on that list that purports to
    * Keeps track of the current transaction state.
    * Prevents starting a new transaction until actually required.
so that may address your concern.  I'm not enough of a JDBC hacker
to be sure though.

            regards, tom lane