You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Phil Steitz <ph...@gmail.com> on 2015/05/01 05:49:00 UTC
Re: [DBCP2] Timeout on PoolingDataSource#getConnection() ?
On 4/30/15 1:40 PM, Shawn Heisey wrote:
> I'm using dbcp2-2.1 and pool2-2.3.
>
> Is there any kind of timeout configurable (or even needed) when calling
> getConnection() on a PoolingDataSource? I was looking over my code for
> possible problems and realized that I have no idea whether this call
> might block indefinitely or whether it will always finish (or throw an
> exception) within some reasonable timeframe. The javadocs don't offer
> anything useful, which hopefully means that there is no possibility of a
> significant or indefinite pause.
>
> Below is the code I'm using to initialize. In this code, dsMaster is an
> instance of javax.sql.DataSource, and one of the objects where I call
> getConnection().
>
> ConnectionFactory cfMaster = new
> DriverManagerConnectionFactory(masterUrl, dbUser, dbPass);
> PoolableConnectionFactory pcfMaster = new
> PoolableConnectionFactory(cfMaster, null);
> pcfMaster.setValidationQuery(validationQuery);
> pcfMaster.setValidationQueryTimeout(5);
> opMaster = new GenericObjectPool<>(pcfMaster);
> pcfMaster.setPool(opMaster);
> dsMaster = new PoolingDataSource<>(opMaster);
Client blocking / timeout above is controlled by the properties set
on the GenericObjectPool. By default, the blockWhenExhausted
property of a GOP is true and maxWaitMillis is -1, which means
clients will block indefinitely. If you want clients to fail when
there are no connections available, set blockWhenExhausted to
false. If you want to block for n millis, leave blockWhenExhausted
true and set maxWaitMillis to n. Alternatively, you could just use
BasicDataSource, which is a little simpler to set up and exposes the
pool properties directly.
Phil
>
> Thanks,
> Shawn
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org