Can you share the configuration of the connection pool? Don't forget to
mask any passwords.

Mark


On 19/01/2020 05:43, Jerry Malcolm wrote:
> I have a web page that makes a couple of hundred ajax calls when it
> loads.  But the calls are recursive.  The response from one call
> generates a couple of more calls.  The responses from those calls
> generate others, etc.  So this is not a blast of 200 simultaneous calls
> to the server.   In most cases the count of active database connections
> never gets over 10-15 at a time.  I have the max count on the connection
> pool set to 125.
> 
> The server has very low traffic averaging a few pages an hour.
> Yesterday, I was testing this one page described above and and I started
> getting errors that no connections were available in the pool.   My
> connection abort timeouts are very short, about 5 seconds, and the wait
> time for a free connection is 60 seconds, I believe.  So theoretically,
> even if there were connection leaks, they should be returned well before
> waiting connections timed out, right?  I went to the AWS RDS console to
> look at the connections graph.  It showed that in the previous couple of
> minutes the database went from 3 connections to the max of 125.   The
> page had timeout errors.  But it was done.  There was no more activity
> on this webapp.  Yet the database monitor continued to show 125
> connections.  I kept refreshing for about 10 minutes expecting the
> connection pool to finally drop all of the connections.  Nothing.
> Finally after about 10 minutes it still showed 125 connections, I
> bounced tomcat and the connection count on the database immediately fell
> to zero.  BTW, I have logAbandoned set to true, and I'm not getting any
> abandon log entries.
> 
> The problem occurred twice requiring a reboot of TC each time.  I
> enabled some jmx code in my web app that logs the connection count each
> time I request/return a connection.  Of course, now that I've got
> logging on, I can't reproduce the problem.  I can reload that page a
> hundred times now, and my AWS RDS monitor shows a bump up to 10-15
> connections for a brief time, then returns, exactly like I believe it
> should be working.
> 
> I'm not a big fan of problems that just go away.  I really want to
> figure out what is happening here, even if it's random.   I don't
> believe this is a problem in the mainline code.  Otherwise I think it
> would be more consistent.  And again, even if I was not returning
> connections, they should be timing out and being logged.  Another option
> is that I have a rogue thread that is sucking up all of the connections
> and holding them.  But this problem only starts when I load this page. 
> And I'm not aware of code that starts new threads in that area.  Is
> there anything I can be doing to the connection pool to make it not
> close connections and return them to the pool?  Or is there anything the
> database could be doing that would cause closing a connection to fail?
> 
> I guess I'm just grasping at straws.  Is there any type of low-level
> logging that I can enable that will tell me each time a connection is
> requested and returned (and possibly the call stack each time)?
> 
> I've got a feeling this one is going to bite me some time soon and take
> a client site down with it.  I really need to understand this one.
> 
> Thanks as always,
> 
> Jerry
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to