Re: postgres jdbc transaction problem surfaces at times - Mailing list pgsql-jdbc

From Mark Lewis
Subject Re: postgres jdbc transaction problem surfaces at times
Date
Msg-id 1144859893.5541.246.camel@archimedes
Whole thread Raw
In response to postgres jdbc transaction problem surfaces at times  (kevin@mtel.co.uk)
Responses Re: postgres jdbc transaction problem surfaces at times  (kevin@mtel.co.uk)
List pgsql-jdbc
This smells like a possible threading issue, where multiple threads are
accessing the same connection object.  Remember that the same HTTP
session can be accessed by multiple threads concurrently, and the
PostgreSQL JDBC driver is not thread-safe.

To see if this is the case, try adding some additional synchronization
to guarantee that no two threads will use the connection at the same
time (perhaps by synchronizing on the Connection object).

-- Mark

On Wed, 2006-04-12 at 08:41 -0700, kevin@mtel.co.uk wrote:
> i read in the posts here that postgres 8.0 jdbc had unmasked it;s
> dislike of changing transaction level mid transaction so i changed my
> code to the following
>
> is this set up correct?
>
>         try {
>             livedb.setAutoCommit(false);
>             copydb.setAutoCommit(false);
>
>
> livedb.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
>
>             copydb.setTransactionIsolation
> (Connection.TRANSACTION_SERIALIZABLE);
>
>             // series of writes to both db's
>
>             livedb.commit();
>             livedb.setAutoCommit(true);
>             copydb.commit();
>             copydb.setAutoCommit(true);
>
>         } catch (SQLException sqle){
>                 // run a rollback-Release and log it routine;
>
>                 // crash and burn;
>         }
>
> this seems to work fine single user, but with several users on i get
> occasional dumps with
> transaction change in transaction.
>
> the only code to change relates to the LUW start since the last rollout
> of this servlet and there was never this problem before.
> the connections are stored as a session attribute, so persist across
> requests.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faq

pgsql-jdbc by date:

Previous
From: kevin@mtel.co.uk
Date:
Subject: postgres jdbc transaction problem surfaces at times
Next
From: Kris Jurka
Date:
Subject: Re: FastPath blocked when ERROR is thrown