3

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

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

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

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

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

我们刚刚添加了几个新的 Spring Webflow 流,并且网站流量略有增加,但我们以前从未见过这种行为。

4

1 回答 1

1

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

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

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

于 2012-07-24T16:56:01.353 回答