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:
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
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!
PS I am using v8.1 of the driver with Postgres 8.1.x.
pgsql-jdbc by date
|Next:||From: Heikki Linnakangas||Date: 2007-03-06 16:28:43|
|Subject: Re: Modifying the concurrent transaction limit|
|Previous:||From: Dave Cramer||Date: 2007-03-05 23:48:17|
|Subject: Re: Fetching generated keys|