枯渇

Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted

負荷テスト中にこんなエラーが出て、参った。
アプリサーバーにtomcat5.5.23を利用し、DBはoracle10g。データソース接続っていう環境。
この例外で色々調べたけど、ほとんどがclose漏れじゃないか、ってことでした。けど、closeしっかりしてるんですよ。。
で、散々はまった挙句、分かりました。エラーメッセージの通り、本当にコネクションが枯渇してた。
重いSQL処理があるんですが、それをやってる最中にどんどんリクエストを投げてたら、コネクションの開放を待たずにリクエスト発行数がどんどん増えていき、待ち切れずにボーン。
重いSQLの処理が終わるまで次のリクエストを発行しないようにしたら出なくなりました。