Axis2 java web服务客户机超时后引起的问题



我有以下问题:
—一个java web应用程序,生成语音XML -基于struts -部署在IBM WebSphere AS (WAS v.7.0.0.7)。
-应用程序使用Axis2 java - v.1.5 - web服务客户机来调用驻留在WebLogic AS上的web服务。
-我使用:

设置超时为1000毫秒
stub.getServiceClient().getOptions().setTimeOutInMilliSeconds(1000);


-应用程序访问web服务的最大次数约为每小时25,000次-大约7个并发调用。
-将调用web服务的代码放入try-catch块后,捕获异常并从方法返回。
—平均每小时在WAS上抛出大约200个异常,原因是定时器在打开连接或读取web服务调用结果时过期-通过记录

exception.getMessage();

我得到以下任何一个,主要是第一个:

org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 60000 ms

  org.apache.axis2.AxisFault: Read timed out


-问题是过了一段时间,应用服务器挂起,不响应传入的请求,或者过了一段时间才响应,这让我们重新启动应用服务器,这种情况在10天内发生了3次。
-通过查看日志,我发现除了由于超时到期而捕获的异常之外,什么也没有发现,也许有什么说得更多,但我还没有找到它。


-在上述情况下,我应该考虑哪些指导要点?是否有一个清理代码,我可以写释放连接,如果它不是?我们能从上面的描述中确定问题的根本原因吗?应用服务器的行为是否"正常"?


我为冗长的描述/问题道歉,我一直感谢你的帮助!

据我所知,服务器报告的超时错误为60000ms。巧合的是,这60秒是IBM IHS服务器的默认超时时间,所以您的问题很可能与此有关。

假设你想让你的请求在服务器上花费超过60秒的时间来处理,你可以通过编辑/opt/WebSphere70/Plugin/config/SERVERNAME/Plugin -cfg.xml来增加这个超时时间

查找ServerIOTimeout="60"并将值更改为大于60秒。

[编辑]

您也可以通过管理控制台查看此设置…

服务器> Web服务器> SERVERNAME>插件属性

最新更新