如果java进程在Websphere上运行超过1分钟,应用程序将响应500

时间:2015-08-31 06:04:07

标签: timeout websphere internal-server-error

我在测试环境中的Websphere上托管了简单的Spring J2EE Web应用程序。我们有一些存储过程,有时需要1分钟以上。在这种情况下,服务器在触发ajax调用时返回500 Internal server error page。如果总响应时间小于1分钟,则可以正常工作。

当我们在tomcat服务器上的本地运行相同的应用程序时,它不会抛出500,而是返回响应,即使我们的代码需要超过2分钟。但它在Websphere服务器上失败了。

我已通过在本地和服务环境中的Websphere上的服务器tomcat中添加sleep来测试,它在测试环境中失败。似乎websphere上有一些超时设置。

我还尝试在应用服务器下的Web容器设置中添加以下自定义属性:

  1. ConnectionIdleTimeout(300)
  2. ConnectionIOTimeOut(300)
  3. ConnectionKeepAliveTimeout
  4. 以下是我得到的html内容:

       <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">↵<html><head>↵<title>500 Internal Server Error</title>↵</head><body>↵<h1>Internal Server Error</h1>↵<p>The server encountered an internal error or↵misconfiguration and was unable to complete↵your request.</p>↵<p>Please contact the server administrator,↵ you@your.address and inform them of the time the error occurred,↵and anything you might have done that may have↵caused the error.</p>↵<p>More information about this error may be available↵in the server error log.</p>↵</body></html>
    

1 个答案:

答案 0 :(得分:3)

通过增加plugin-cfg.xml中的ServerIOTimeout来解决此问题。

ServerIOTimeout表示&#34;插件应该等待应用程序的响应多长时间&#34;很快。打开套接字后,插件会将请求发送到Application Server。它在Websphere 7中的默认值为60,在某些情况下非常少。 重要的一点是,一旦你编辑plugin-cfg.xml。您需要重新生成插件才能使更改生效。另外一点是,即使你在管理控制台中更改它,它也会从plugin-cfg.xml中读取它,如果它存在,那么总是直接更改xml文件。

此档案的位置: -

有关详细信息,请参阅IBM DOCSthis really good blog