Since the @PooledBean would act like a custom connection pool, its pool sizes and timeouts match familiar database pooling configuration. We’re trying to keep things conceptually simple, by using common ideas for similar functionality.
Essentially, the configuration limits aim to improve reliability by matching the maximum load of a resource to what it can handle. Temporary spikes are queued for a short while, smoothing the load.
In our prototype configuration, we have the following attributes:
The maxIdle configuration limits the idle connections in the pool. This is your buffer of unused connections to handle spikes. At any time, since there may be more active connections than idle connections, the total connection may be larger than this number.
The maxConcurrent is a limit on the concurrent threads running through the pool. This is the main throttling configuration, limiting the load on the resources and smoothing spikes.
The maxConcurrentTimeout limits the total time waiting for the resource to become idle.