私たちのシステムでは接続の枯渇が時々見られますが、問題は、セッションが接続プールに十分な速さで返されていないことにあるようです。セッションで Session.disconnect() を使用することを確認するように見えるテストを作成しました (1 つを使用した後)、この問題が解決されます。ただし、これらの呼び出しの時間も測定しました。切断を使用すると、実行時間が 3 倍長くなるようです。
ドキュメント (http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/Session.html#disconnect() ) によると、切断すると接続プールに返されるはずです。ただし、ドキュメントは、接続を「閉じる」とも述べています。Session.close() が切断以上のことを行うという事実を知っているため、それが何を意味するのかわかりません。また、接続を返す前に接続を閉じた場合、接続プールは何の役に立つでしょうか?
いずれにせよ、セッションを接続プールに返すメソッドが、瞬間的ではなく本質的に無料である理由が不思議です。確かにそれが接続プールの要点ですよね?
どんなアイデアでも大歓迎です。