【问题标题】:http request timeout WebSphere Application Serverhttp 请求超时 WebSphere Application Server
【发布时间】:2015-07-16 11:10:07
【问题描述】:

我正在使用 WebSphere Application Server 8.5.5.3。 Web 容器线程的最大数量设置为 100。服务器上安装了多个应用程序。有时,其中一个应用程序会变慢并挂起所有 Web 容器线程。这导致来自所有其他应用程序的请求堆积起来等待 Web 容器线程。是否有可以使等待请求超时的属性?

如果请求处理已经开始,我不想让请求超时。有一些长时间运行的请求,这些请求不应超时。请提出建议。

【问题讨论】:

  • 什么样的请求?它是网络服务吗?
  • 是http请求,来自浏览器的rest请求。

标签: java websphere websphere-8


【解决方案1】:

尝试使用异步 servlet,如下所示:

@WebServlet(asyncSupported = true, urlPatterns = { "/AsyncServlet" })
public class AsyncServlet extends HttpServlet {
...
}

WebSphere Application Server 中的异步 servlet 会将线程返回到 Web 容器池,因此可以用于处理其他请求。

有关如何开发异步 servlet 的更多信息,请查看WebSphere Application Server Liberty Profile Guide for Developers 中的第 5 章。虽然它与 Liberty Profile 相关,但相同的代码可以在普通的 WebSphere Application Server 中使用。

有关如何在 Web 容器中配置异步处理的信息,请查看 Web container settings

【讨论】:

  • 有2个应用程序使用同一个jvm。其中之一是遗留应用程序,我无法更改该应用程序的源代码。
  • @pawindergupta 如果您在 WAS 前使用 IHS 和 WebSphere 插件,您应该能够在那里设置超时。您是否知道这些长时间运行的请求会使您的其他应用程序不可用?在这种情况下,我建议为具有这些长请求的应用程序创建单独的应用程序服务器(JVM)(这样就不会影响其他人的可用性)
猜你喜欢
  • 2015-08-20
  • 2014-11-21
  • 2016-10-16
  • 1970-01-01
  • 1970-01-01
  • 2014-01-22
  • 2023-03-03
  • 2010-11-23
相关资源
最近更新 更多