Concurrency is a chain of limits
Accepted requests, execution threads, and dependency connections need not have equal limits. A request may occupy a thread while waiting for a JDBC connection or an external response. If a dependency slows, threads remain occupied longer and queues grow. Examine occupancy, waiting, duration, and arrival rate together.
A pool timeout does not identify the cause
Connection waiting may result from excessive demand, long transactions, unreleased connections, an unsuitable limit, or database slowness. Increasing the pool raises possible concurrency against the dependency and may exceed its capacity. Collect pool metrics, logs, thread states, and database evidence for the same interval. Distinguish obtaining a connection from executing a query through it.
Size using measurements
Under stable conditions, a useful approximation is average concurrency ≈ completion rate × average time in the system. If 40 requests per second increase from 0.2 to 2 seconds, average work in progress rises roughly from 8 to 80 without a higher rate. This does not replace testing or platform-specific limits, but explains why slowness puts pressure on pools. Validate adjustments with representative load and quality criteria.
Workplace application
During a post-release regression, compare connection holding time and request rate before increasing limits. A query ten times slower can occupy resources longer even without demand growth. The source’s Open Liberty configuration is specific to that runtime; confirm names and activation in traditional WebSphere. Tuning must respect dependency capacity and be validated under representative load.
The JDBC pool is exhausted, but the database shows long transactions after a query change. Raising connections from 50 to 200 may multiply pressure. Investigate the regression and connection holding time before changing the limit.
Common pitfalls
Increasing pools without measuring retention or database capacity.
Related topics: Operate TLS, certificates, and configuration · Manage queues, acknowledgements, and retries
An exhausted pool may be a consequence of slowness; more concurrency is not the same as more capacity.
Reference: Connection manager configuration · DR Middleware 2026.4; HotSpot JDK 25; JDBC 25; PostgreSQL 18; RabbitMQ 4.3; OpenSSL 3.5; explicitly scoped runtime references