Chris,

We don't have "high load" applications for the most part so it is pretty common 
to have a MaxActive set to around 5 or 10.   We monitor applications to watch 
for high-water marks to make sure we keep 10-20% headroom on for free 
datasource connections.  

Our release cycle has us releasing many applications on many JVMs every week.  
From time to time, these applications have issues in them where someone has 
made a code change that requires 2 connections per request instead of 1.  In 
those cases, we temporarily increase the MaxActive to accommodate the issue 
introduced.  We do this by using JMX as well as updating the server.xml ( in 
case the JVM is restarted for some reason ).  In some cases an application is 
released that shares a datasource with another application and the MaxActive 
isn't large enough to accommodate both apps.  By using JMX, we are able to 
increase MaxActive without having to take the JVM down to resolve this.

We also have cases where applications are released with connection pool leaks.  
When this happens, we catch problems because we keep the pools only big enough 
to service demand.  We will see connection pools hit 100% usage and thread 
pools increase rapidly due to waiting on connections.  We do this to prevent 
the database from being hit overly hard by a single application.  We also do 
not use the removeAbandoned settings today in favor of failing fast.  This way 
the App Server suffers not the DB.  Our Tomcat hosts and JVMs greatly outnumber 
our DB hosts.

What do you do today to reset or resize connection pools?

Thanks,
 
Brooke Hedrick

-----Original Message-----
From: Christopher Schultz [mailto:ch...@christopherschultz.net] 
Sent: Wednesday, May 30, 2012 7:09 PM
To: Tomcat Users List
Subject: Re: Question about resetting datasources and changes to the 
BasicDataSource.close() method

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Brooke,

On 5/30/12 3:31 PM, Hedrick, Brooke - 43 wrote:
> How are others dynamically resetting/resizing their database 
> connection pools when necessary?

Quick question about all this: why do you need to do any more dynamic-resizing 
than dbcp already provides out of the box? I know that dbcp doesn't have a 
built-in method for trashing all connections and re-filling the pool, but 
re-sizing is definitely something it can already do (see the configuration 
property "minEvictableIdleTimeMillis").

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk/GtpEACgkQ9CaO5/Lv0PALnwCgtIQEoDQ8PHSX//pv9NDRg8f+
jQMAn2sxxVMgY4Q5ea7aLvHGkp13tdBO
=4tle
-----END PGP SIGNATURE-----

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

Reply via email to