1

我在 linux 服务器上遇到了 JBoss AS 7 的奇怪行为。当我使用我的应用程序部署战争时,服务器不会响应此应用程序的有效 HTTP 请求。当我尝试获取一个有效的 URL 时,我可以在日志中看到调用了后端函数(例如 DAO 方法),调试日志显示我的 JSF 中的后续标记已呈现,我什至可以看到一条消息Rendering View index.xml,但响应从未到达客户端。当我使用不存在的 URL(例如index.asd)时,响应为 404,而当我使用错误的页面名称(例如inswxasd.xhtml)时,响应为 500。因此,只有有效请求才会失败。

我尝试远程连接(使用 firefox)和本地连接(使用wget),我重现了这个问题。奇怪的是,我部署了我已经使用过的战争,然后它起作用了。

编辑1:

我刚刚注意到,当我发送请求时,服务器进程占用了 200% 的 CPU。此外,只有一个具有堆栈的应用程序会发生这种情况:Hibernate、Spring、JSF 2.0、Primefaces。

编辑2:

这是带有 jstack 输出( jstack -l -F <PID>) 的馅饼。所有线程都被阻塞。

此外,我注意到(使用top和转储 JBoss 进程的堆栈)问题很可能是由一个名为http--0.0.0.0-8080-1. 有任何想法吗?

4

1 回答 1

0

感谢帮助。我将数据库恢复到以前的状态,它开始工作。显然数据中存在导致此无限循环的问题。现在我们需要找到它,但由于它是可重现的,我会管理的。

于 2012-04-10T07:19:41.450 回答