Skip site navigation (1) Skip section navigation (2)

Re: BUG #6503: Idle in transaction while lazy loading in JSF render response

From: "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
To: <j(dot)vreven(at)aca-it(dot)be>
Cc: <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: BUG #6503: Idle in transaction while lazy loading in JSF render response
Date: 2012-03-02 20:51:51
Message-ID: 4F50DE870200002500045E5B@gw.wicourts.gov (view raw or flat)
Thread:
Lists: pgsql-bugspgsql-jdbc
<j(dot)vreven(at)aca-it(dot)be> wrote:
 
> This bug was not in jdbc4 driver: 8.4-701
> But is introduced in jdbc4 driver: 8.4-702
> It is still present in 9.1-901
 
You might get this in front of a more appropriate group of people if
you post to the pgsql-jdbc list.  I'm moving discussion to that list.
 
> Context:
> * Tomcat 7
> * JPA2 Hibernate
> * Atomikos
> * Spring
> * JTA transaction manager (using org.postgresql.xa.PGXADataSource)
> ===
> 
> If in the JSF lifecycle render-response an element is fetched by
> means of lazy loading (that was not fetched in invoke-application
> lifecycle) a transaction will be started but it remains idle in
> transaction for postgres.
> 
> The JTA Transaction manager has no active transactions at that
> moment, so for JTA everything seems commit/rollback.
> 
> The connection seems to be back in the connectionpool, since the
> transaction was used for only read operations no harm is done, and
> the connection becomes idle for postgres when the next thread
> invokes a commit on this connection.
 
Instead of assuming that someone can install a matching software
stack and replicate the problem, can you determine what methods are
invoked on which objects to manifest the problem, and create a
simple test case that can demonstrate the issue with just the test
case source code and a JDBC jar?
 
> Workaround 1: Use version 8.4-701 or lower
 
Are you able to try reverting portions of the difference between 701
and 702 to see which make a difference?  If you ignore the
translation and test code, the changes weren't huge.  It was
probably this commit:
 
https://github.com/pgjdbc/pgjdbc/commit/482c77d67efdcaf2b7db16c96bba20ea34bc294c
 
or maybe this one:
 
https://github.com/pgjdbc/pgjdbc/commit/cf625c7ba2647825b0e3995da3604785f14fa20e
 
Do you see anything wrong with either of those?
 
> Workaround 2: JSF phaselistener to begin and rollback transaction
> before and after render-response.
 
I have no idea what that means in terms of what statements are run,
or when.
 
-Kevin

In response to

Responses

pgsql-bugs by date

Next:From: Claus StadlerDate: 2012-03-03 00:58:44
Subject: Regression from 8.4 to 9.1.2/9.1.3: Optimizing filters on constants in unions
Previous:From: Peter EisentrautDate: 2012-03-02 18:58:59
Subject: Re: BUG #6480: NLS text width problem

pgsql-jdbc by date

Next:From: Jo VrevenDate: 2012-03-03 07:25:25
Subject: Re: BUG #6503: Idle in transaction while lazy loading in JSF render response
Previous:From: j.vrevenDate: 2012-03-02 17:01:37
Subject: BUG #6503: Idle in transaction while lazy loading in JSF renderresponse

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group