Hi

The purpose of the new class is to maintain a minimum number idle instances in a pool, 
but grow as required up to a maximum number of active instances. The reason for 
maintaining a minimum level of idle instances in a pool, is for efficiency. A call to 
borrowObject() when there are no pooled instances available, must create an instance 
of the object required. This causes delays when the object it is instanciating needs 
to reserve resources or connect to remote systems (for example, an SMTPConnection).

The new class proposed, features the following:

Same features as provided by GenericKeyedObjectPool (idle eviction, validation of 
pooled objects on borrow/on return/when idle).

Maintain a minimum number of pooled objects (per key). This number is configurable. 

A seperate thread will be used to periodically create any required objects to maintain 
the minimum level. This time period is configurable.

The pool must be aware of a key before it can start maintaining a minimum number of 
pooled objects for that key. This can be performed by performing a borrowObject(key). 
However, this results in a potential delay whilst the pooled object is being created. 
An extra method preparePool(key) is used to give the pool knowledge of the key, so 
that it can start maintaining a minimum number of pooled objects for that key. This 
should result in a much quicker call to borrowObject(key), as pooled instances will 
already be created and waiting in the pool.

The above features are essentially one patch. It was originally intended to extend 
GenericKeyedObjectPool, and add the new features. However, the fields in 
GenericKeyedObjectPool are private.


Dirk - In the case of our system we were pooling custom connections to remote servers. 
These were not SQLConnections, but SQLConnections would also work with this 
modification.

Cheers,

Simon


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to