[ 
https://issues.apache.org/jira/browse/POOL-130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12643467#action_12643467
 ] 

Torsten Feig commented on POOL-130:
-----------------------------------

In my case, the creation is probably not very expensive, but the outcome is 
ugly anyway: we use GenericObjectPool as a thread pool. Every object created is 
a thread with a unique name (basename + incremented counter) so to tell them 
apart (in logs or threaddumps). We'd like to have 10 minIdle threads for a 
quick response to average workload. When the application runs a while (i.e. for 
days), there may however be no work for these threads at all. So the operations 
department frowns when looking into the logs and seeing ridiculously high 
thread counters.

I haven't looked into the source code and can therefor not provide a patch. But 
it appears to me that it should be quite simple as this "churn" of idle objects 
seems to be an additional functionality - just cut out the code that destroys 
und recreates idle objects.

> GenericObjectPool.Evictor creates new objects although exactly minIdle 
> objects are idle
> ---------------------------------------------------------------------------------------
>
>                 Key: POOL-130
>                 URL: https://issues.apache.org/jira/browse/POOL-130
>             Project: Commons Pool
>          Issue Type: Bug
>    Affects Versions: 1.2, 1.4
>            Reporter: Torsten Feig
>
> When you 
> - create a GenericObjectPool with these parameters: maxActive=100, 
> maxIdle=100, minIdle=10, timeBetweenEvictionRunsMillis=360000 (1h), 
> minEvictableIdleTimeMillis=30000 (5min)
> - preload the 10 minIdle objects (10x borrowObject() + returnObject)
> you have a pool with 10 idle objects.
> Then every 1h the evictor destroys the 10 idle objects and creates 10 new 
> ones. Why? After all, creating and tearing down pool objects is likely to be 
> expensive. So why destroy the old objects when they exactly represent the 
> minIdle objects? I don't see any need for this.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to