Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

データベース接続プールの枯渇

データベースへの接続プールを利用する Servlet (or JSP) がエラーを起こし、ログに次のようなエラーが残っていた場合。

javax.servlet.ServletException: Cannot get a connection, pool exhausted

データベースへの接続が明示的に開放 (close?) されておらず、タイムアウトするまで握られたままになっていることが原因……らしい?
ad hocプログラマらしからぬ解決法 *1 としては、Administration Tool で [リソース]-[データソース] から使用しているデータベースに対応するデータソースを参照し、[有効な最大接続数] と [アイドル状態の最大接続数] を増やすこと。

*1:e.g.「この変数を消すと segmentation fault と出て止まるので消してはいけない」