On Jun 6, 2008, at 9:10 AM, jfjames wrote:


I'm doing some tests before putting OpenEJB in production and I'm facing a
problem with the DataSource configuration.
My environment is :
1/ Application deployed on Tomcat 6.0.16 + Open EJB 3.0,
2/ Database : MySQL 4.0.1 + Mysql Connector 5.0.4
3/ JPA provider : Hibernate Entity Manager 3.3.1 (with
hibernate.connection.release_mode parameter set to auto)
4/ Sun JVM 1.5.0 on Windows NT (Linux in production)
5/ DataSource configuration : no Evictor configured
(TimeBetweenEvictionRunsMillis=-1), MaxActive=10 and MaxWait=-1.
My application exposes a JAX-WS interface and I use a benchmark based on a
multi-threaded client injector.
My problem is : when the number of concurrent injector threads exceeds the maxActive parameter of the DataSource, many database connections are opened. For instance more than 50 connexions for 10 running threads ... far more
than MaxActive !
I've checked the DBCP and COMMON POOLS code source and normally this should not happen : when no connection is available from the pool, we should wait without creating new one (MaxWait=-1). So why are new connections created in
such quantity ?
Has anyone encountered and resolve this kind of problems ? I need to resolve
it before going to production.
Any help appreciated.

Is it possible you could create a small app + test case to reproduce it? I suspect we'll need it in order to figure out what might be happening. Doesn't have to be pretty, can even submit the code you're using now if you're ok with that.

-David

Reply via email to