0

我们有一个 servlet,它接受请求并在外部系统上执行某些操作。很多时候,这些外部系统响应缓慢,请求时间超过 60 秒。在日志中我们注意到,只要客户端仍然连接,恰好在 60 秒后,就会向 servlet 发出一个新请求(使用相同的 post 参数)。

谷歌搜索发现其他应用服务器(如 Glassfish 等)也报告了相同的情况。原因似乎是在 60 秒超时后,servlet 或 Web 容器正在超时调用并重复请求。请注意,这似乎是 servlet 或容器启动的刷新,而不是真正从客户端发布的。避免这种情况的方法是显然增加超时。(在这里阅读更多关于类似问题的信息: Java - 来自两个 WebContainer 线程的多个请求

我将 deploy/jbossweb.sar/server.xml 中的 connectionTimeout 增加到 120000(2 分钟),但调用仍然在 60 秒后重复。

知道如何增加超时或避免 JBoss 中的这种行为吗?

谢谢斯里尼

4

1 回答 1

0

发现问题。问题根本与 JBoss 无关。我们的 JBoss 服务器在 Amazon EC2 实例上运行,并位于 ELB 负载均衡器后面。AWS ELB 负载均衡器在每 60 秒空闲时间后超时并重新提交请求。

于 2012-08-23T06:12:32.130 回答