我们每隔一段时间就会看到系统中的连接枯竭,问题似乎是会话没有足够快地返回到连接池。我写了一个测试,似乎确认在会话上使用 Session.disconnect() (在完成一个之后)将解决这个问题。但是,我也为这些调用计时,似乎使用断开连接将运行时间增加了 3 倍。
根据文档(http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/Session.html#disconnect()),断开连接应该将其返回到连接池。但是,文档还说它“关闭”了连接。我不确定这意味着什么,因为我知道 Session.close() 不仅仅是断开连接,如果在返回连接之前关闭连接,连接池会有什么好处?
无论如何,我想知道为什么将会话返回到连接池的方法不会是瞬时的并且基本上是免费的。当然这就是连接池的全部意义,对吧?
任何想法,将不胜感激。