Start here. This is the direct spoken answer to practice first.
Overview
Pool exhaustion means demand for connections exceeds their return rate; a leak is only one possible cause.
I first confirm the symptom: active connections near the pool maximum, pending acquisition growing, and acquisition timeouts. Then I correlate the start with traffic, deployment, query latency, and database health. Pool exhaustion can come from leaked connections, long transactions, slow or blocked queries, too much parallel database work, or a pool that is too small for a changed workload.