我們有一個在 WebSphere 上運行的應用程式。請求通常會運行很長時間(數十分鐘)。我們的用戶報告說,Internet Explorer 在等待一段時間後斷開連接並顯示空白畫面。應用程式日誌顯示請求在 servlet 層級正常完成,但它給出了許多以下錯誤:
[4/24/15 11:31:19:253 MSK] 0000001f ThreadMonitor W WSVR0605W:執行緒「WebContainer:2」(00000027) 已活動了 750529 毫秒,可能已掛起。伺服器中總共有 1 個執行緒可能掛起
解決問題時應考慮的 WebSphere 或 Internet Explorer 的設定選項有哪些?
答案1
首先我想指出,如果您的應用程式正在運行很長的事務,您需要找到一種非同步方式來處理它。
如果您不負責應用程式設計,您可以做兩件事(非常髒):
- 修改掛起線程的警報(這很髒,因為這可能會影響容器中的每個線程,並且您可能會錯過所需的警報)。這裡就是這樣做的方法。
- 在 Web 容器的自訂屬性中增加連線逾時(這很髒,因為它會影響您的效能和其他一些配置,因為您可能被迫增加執行緒池,然後增加記憶體等等)。
但你絕對應該修復你的後端和/或你的實現的問題(或為你的開發人員製作核心轉儲)。