2011-01-20 62 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