引发了一个SQLException,java.lang.InterruptedException,我是否用完了数据库连接?

所以我们运行一个Hibernate,Spring,Spring Webflow堆栈。 从我到目前为止所读到的,知道我们使用c3p0-0.9.1.2可能也很重要。

在过去的几天里,我们注意到服务器突然停止了。 用户无法登录网站,似乎没有任何事情发生,浏览器只是永远地加载页面。 服务器日志也只是暂停。

当我们注意到这一点时,我们关闭了tomcat实例,突然之间记录了以下几个错误;

13:05:57.492 [TP-Processor7] WARN ohutil.JDBCExceptionReporter - SQL Error: 0, SQLState: null 13:05:57.492 [TP-Processor7] ERROR ohutil.JDBCExceptionReporter - An SQLException was provoked by the following failure: java.lang.InterruptedException 

这些意思是什么意思? 谷歌并没有太大的帮助。 我们是否在某处泄露数据库连接,并且池无法获得新会话?

我们刚刚添加了一些新的Spring Webflow流程,并且网站流量略有增加,但我们之前没有看到过这种行为。

我怀疑那些InterruptExceptions来自容器对这些线程的实际关闭,并且只是在Tomcat关闭时指示这些线程是否存在。

相反,当它下次冻结时,我会从Tomcat中获取一个线程转储 。 我还会得到一位DBA来告诉你数据库中发生了什么。 从上面我猜你是挂在数据库资源上,但DBA的线程转储和分析肯定会指向正确的方向。

这是一个Thread Dump JSP作为生成线程转储的替代方法。