Modifying the concurrent transaction limit

From: "Jason L(dot) Buberel" <jason(at)buberel(dot)org>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Modifying the concurrent transaction limit
Date: 2007-03-06 16:12:13
Message-ID: 45ED92DD.3080307@buberel.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

I've been running into a problem with a multithreaded, long-running
processing application. The problem occurs when the number of open
transactions reaches the magic number of '50'. When this occurs, all
further database access blocks and the application has to be restarted.

I am using Hibernate with the simple JDBC Transaction Factory:

<property name="transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory</property>

I keep track of the number of open concurrent transactions using a
static method on my hibernate session factory, and sure enough, any time
I see a 'stuck' application and check the logs, I will see:

2007.03.06 09:10:05 DEBUG SessionOwnerImpl
broker_zip_market_heat_quartiles subreport filler - Current trxn counter: 50

What I would like to know is:

A. Is there really a built-in limit to the number of concurrent
transactions?
B. Can this value be configured?

I have done what I can to try and ensure that these transactions are
cleaned up when processing completes, but sometimes garbage collection
does not occur soon enough and I accumulate 50 open transactions,
wedging the process. If there is something else that I should be doing
to avoid this type of problem, please suggest!

Thanks,
Jason

PS I am using v8.1 of the driver with Postgres 8.1.x.

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Heikki Linnakangas 2007-03-06 16:28:43 Re: Modifying the concurrent transaction limit
Previous Message Dave Cramer 2007-03-05 23:48:17 Re: Fetching generated keys