[ 
https://issues.apache.org/jira/browse/DBCP-368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Thomas resolved DBCP-368.
------------------------------

    Resolution: Fixed

It isn't a perfect solution but I have exposed the new evictionPolicyClassName 
property from Pool2 to DBCP. I think, with a little careful configuration 
you'll be able to get close to what you need.

> determine which connections to hold in pool by relative value
> -------------------------------------------------------------
>
>                 Key: DBCP-368
>                 URL: https://issues.apache.org/jira/browse/DBCP-368
>             Project: Commons Dbcp
>          Issue Type: New Feature
>            Reporter: Philip Williams
>             Fix For: 2.0
>
>
> Situation: a Firebird-Classic database (each connection has independent 
> metadata cache), in a metadata-heavy environment; many "quick" actions will 
> never force the database server to load full metadata, but a few will, in our 
> case resulting in 200MB of metadata cache in memory (takes about 3 seconds to 
> load, visible latency to the user); any connection that has done this is 
> "more valuable" to us, and we'd prefer to keep those connections in the pool, 
> and remove idle connections which haven't incurred this cost yet and are 
> relatively cheap to recreate later if our load increases. Doing this is 
> preferable to forcing ALL connections to load metadata at start, as this 
> means the pool will always have a startup cost (in time), and the server will 
> likely use more memory than really necessary.
> Proposal: add new configuration parameter; if set, run the SQL string and get 
> back a single-column, single-row result-set containing an arbitrary "value" 
> as determined by the connection; prefer to close the lowest(?)-value 
> connections first, to get down to the configured minIdle. Would require 
> querying each open connection, when the pool is over-full, to determine which 
> ones are most valuable. If not set, use current algorithm (based on age?).



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to