问题描述
我们正在测试150秒的子系统超时。所以在我的应用程序中,第一个SOAP请求被发送。然后60秒后,发送另一个请求。我的问题是来自其他请求的位置。它是新线程,但客户端代码没有重试机制。这是在WebSphere 6上运行的。这些是来自日志的片段:
We are testing a sub-system timeout of 150 seconds. So in my application, the first SOAP request is sent. Then 60 seconds later, another request is sent. My question is where is the other request coming from. It's new thread yet, but the client code has no re-try mechanism. This is running on WebSphere 6. These are snippets from the logs:
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]"
正如你所看到的那样,从一个不同的WebContainer开始调用相同的reqeust,差不多一分钟。如何找到第二个请求的来源?我应该在WebSphere中检查什么来调试?
As you can see the same reqeust is called, from a different WebContainer almost one minute apart. How can I find where the 2nd request is coming from? What should I check in WebSphere to debug?
推荐答案
几个星期前就解决了这个问题。 WebSphere的HTTP插件的默认超时设置为60秒。如果您的线程在60秒后仍未返回,则将重新发出请求(我相信HTTP服务器,但不确定)。因此第二个WebContainer线程处理请求。
Dealt with this issue just a couple of weeks ago. The HTTP Plugins of WebSphere have a default time-out setting of 60 seconds. If your thread still hasn't returned after 60 seconds, the request will be reissued (I believe by the HTTP Server, but not sure). Hence the second WebContainer thread processing the request.
您可以将插件时间设置为> 150秒,以便测试您的案例。在WebSphere管理控制台中的Web服务器定义的插件属性页面中设置 ServerIOTimeout 定制属性。设置为0表示无限等待时间。
You can set the plugin time to > 150 seconds in order to test your case. Set the ServerIOTimeout custom property in the "Plug-In Properties" page of the web server definition in the WebSphere admin console. Set to 0 for an infinite wait time.
这适用于WAS6.1和WAS7,我想你可以知道它是否适用于WAS6。
This works on both WAS6.1 and WAS7, I guess you can find out if it does on WAS6.
这篇关于Java - 来自两个WebContainer线程的多个请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!