> From: Alexandre Chapellon [mailto:alexandre.chapel...@mana.pf] 
> Subject: Re: pick load

> To me this sounds like a pool of database connection
> that is full

It's not a full connection pool - you're not using one.  It's also likely that 
your database is a bit sluggish in establishing connections.  That version of 
the JVM sets a global lock while creating a connection, with the expectation 
that it will occur fairly quickly, allowing the next connection to be 
established.  Note that this has nothing to do with Tomcat.

> I don't really know how/where to deal with it.

Fix your DB, and configure a connection pool rather than calling 
com.mana.oc.DBConnection.getConnectionCRM directly, so each request doesn't 
have to acquire a new connection.  Also upgrade to supported versions of 
things, since both the level of Tomcat you're on and the JVM have been 
unsupported for quite some time.  The most recent JVMs do not keep that 
particular global lock up on the connection request to the DB, so moving to 
Java 6 might help.

> If someone has the kind willing to take a look at the 
> full dump here it is: http://pastebin.com/2v3PVTDm

A brief look showed only one thread having an active DB connection, with all of 
the rest stuck on the global lock trying to get a connection in order to 
authenticate the client or else just waiting for something to do.  Since you're 
not using a connection pool for the authentications, you're serializing the 
requests, so it's no wonder your throughput is terrible.  Even the greatly 
improved performance of newer Tomcat and JVM versions won't overcome bad webapp 
design.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.

Reply via email to