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

Phil Steitz commented on POOL-282:
----------------------------------

[~ashok2ashok] 

First, many thanks for stepping up to the challenge here.  Here are some 
comments:
 # I don't think we need to support different abandoned configs for different 
keys.  That would be kind of messy and I can't immediately think of scenarios 
where different configs would be desired.  Does your use case require this?  
Assuming no, I would stick with just using the AbandonedConfig class as is.
 # The per key considerations come in when you actually do the cleanup.  It 
seems reasonable to me to generally follow the pattern of what GOP does, except 
that you add the key as a parameter to removeAbandoned, so it is 
`removeAbandoned(ac, key)` and it does what the signature suggests - just goes 
after abandoned instances under the given key.  So borrowObject does the same 
kind of test that GOP does and if the pool is running low for the given key, it 
does the cleanup for that key. 
 # Maintenance is kind of interesting.  The natural thing to do would be to 
iterate all keys and call `removeAbandoned(ac, key)` for all of them.  For 
pools with lots of keys, that might cause performance problems.  I can see 
three options here: 0) don't worry about it 1) hitchhike on the iteration 
sequence in the loop over numTests in evict and just hit the keys that get 
visited 2) introduce a separate config that controls how many keys get cleaned 
up per eviction run and maintain a separate keys iterator to cycle through 
them.  Could be I am needlessly worrying here and 0) is fine.  The whole thing 
can be turned off by setting removeAbandonedOnMaintenance to false so I think 
it is probably OK to start with the simple hit them all impl.

> CLONE - Support AbandonedConfig in SharedPoolDataSource
> -------------------------------------------------------
>
>                 Key: POOL-282
>                 URL: https://issues.apache.org/jira/browse/POOL-282
>             Project: Commons Pool
>          Issue Type: Improvement
>    Affects Versions: 2.0, 2.1, 2.2, 2.3
>         Environment: Linux and Java 1.6
>            Reporter: Michael Kerr
>            Priority: Minor
>              Labels: features
>
> BasicDataSource has support for AbandonedConfig
> SharedPoolDataSource does not currently support reclaiming abandoned 
> connections.
> It would be helpful if the user can extend the underlying connection pool to 
> add features like abandoned connection management.  This is possible with 
> BasicDataSource.
> Currently the only solution is to extend classes or replace classes in the 
> Apache package namespace.
> Thanks for looking,
> Michael



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to