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