Oh yeah! They mention that formula on the DBCP configuration page
(at the bottom). I didn't think of looking for that. Good catch.
Virtually,
Andre Van Klaveren
On Thu, 24 Feb 2005 12:02:39 -0700, Trenton D. Adams
<[EMAIL PROTECTED]> wrote:
> I looked in the AbandonedObjectPool code and found the following.
>
> if (config != null
> && config.getRemoveAbandoned()
> && (getNumIdle() < 2)
> && (getNumActive() > getMaxActive() - 3) ) {
> removeAbandoned();
>
> So, I never came close to the abandoned connections being removed
> because my max active was set to 20 or something, and I had only a
> couple of dangling connections. I thought this would be done in a
> background thread, but I guess not.
>
> Trenton D. Adams wrote:
> > I have the following code, and it doesn't clean up abandoned
> > connections. Anybody have an idea of what I am doing wrong?
> >
> > AbandonedConfig abandonedConfig;
> > ObjectPool connectionPool;
> > ConnectionFactory connectionFactory;
> > PoolableConnectionFactory poolableConnectionFactory;
> > PoolingDriver driver;
> >
> > // setup the abandoned configuration
> > abandonedConfig = new AbandonedConfig();
> > abandonedConfig.setLogAbandoned(true);
> > abandonedConfig.setRemoveAbandoned(true);
> > abandonedConfig.setRemoveAbandonedTimeout(60);
> >
> > // setup the AbandonedObjectPool
> > connectionPool = new AbandonedObjectPool(null, abandonedConfig);
> > ((GenericObjectPool)connectionPool).setMaxActive(maxConn);
> > ((GenericObjectPool)connectionPool).setMaxIdle(maxFree);
> > ((GenericObjectPool)connectionPool).setTestWhileIdle(true);
> > ((GenericObjectPool)connectionPool).setWhenExhaustedAction(
> > GenericObjectPool.WHEN_EXHAUSTED_BLOCK);
> > ((GenericObjectPool)connectionPool).setMaxWait(30);
> > ((GenericObjectPool)connectionPool).setTestOnBorrow(true);
> > ((GenericObjectPool)connectionPool).setTestOnReturn(true);
> >
> > ((GenericObjectPool)connectionPool).setTimeBetweenEvictionRunsMillis(10000);
> >
> > ((GenericObjectPool)connectionPool).setNumTestsPerEvictionRun(10);
> > ((GenericObjectPool)connectionPool).setMinEvictableIdleTimeMillis(10);
> >
> > connectionFactory = new DriverManagerConnectionFactory(url, user,
> > password);
> > poolableConnectionFactory = new PoolableConnectionFactory(
> > connectionFactory,connectionPool,null,
> > "SELECT 'ping' FROM dual",false,false,
> > Connection.TRANSACTION_SERIALIZABLE, null, abandonedConfig);
> > try
> > {
> > Class.forName("org.apache.commons.dbcp.PoolingDriver");
> > dbcpURL = "jdbc:apache:commons:dbcp:" + name;
> > driver = (PoolingDriver) DriverManager.getDriver(dbcpURL);
> > driver.registerPool(name, connectionPool);
> > }
> > catch (Exception exception)
> > {
> > RemoteBannerServer.log(exception, "error creating DBCP connection
> > pool");
> > }
>
> --
> Trenton D. Adams
> Web Programmer Analyst
> Navy Penguins at your service!
> Athabasca University
> (780) 675-6195
>
> __
> This communication is intended for the use of the recipient to whom it
> is addressed, and may contain confidential, personal, and or privileged
> information. Please contact us immediately if you are not the intended
> recipient of this communication, and do not copy, distribute, or take
> action relying on it. Any communications received in error, or
> subsequent reply, should be deleted or destroyed.
> ---
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]