2011-01-20 63 views
3

我们正在测试150秒的子系统超时。所以在我的应用程序中,发送了第一个SOAP请求。然后在60秒后发送另一个请求。我的问题是其他请求来自哪里。这是新线程,但客户端代码没有重试机制。这是在WebSphere 6.运行这些都是从日志摘录:Java - 来自两个Web容器线程的多个请求

2011-01-18 16:16:32.696 EST [WebContainer : 0] DEBUG content <> << "<?xml version="1.0" encoding="UTF-8"?>[\n]" 

2011-01-18 16:17:32.591 EST [WebContainer : 2] DEBUG content <> << "<?xml version="1.0" encoding="UTF-8"?>[\n]" 

正如你可以看到同样的reqeust被调用时,从不同的Web容器分开几乎一分钟。我怎样才能找到第二个请求来自哪里?我应该在WebSphere中检查什么来调试?

回答

3

就在几周前处理这个问题。 WebSphere的HTTP插件具有60秒的默认超时设置。如果您的线程在60秒后仍然没有返回,请求将被重新发布(我相信通过HTTP Server,但不确定)。因此,第二个WebContainer线程处理请求。

您可以将插件时间设置为> 150秒以测试您的案例。在WebSphere管理控制台的Web服务器定义的“插件属性”页面中设置ServerIOTimeout定制属性。无限等待时间设置为0。

这适用于WAS6.1和WAS7,我猜你可以看看它是否在WAS6上。

+1

比从来没有更好的迟到;) – blockHead 2013-02-19 00:59:20