我得到間歇性超時處理某些AJAX POST請求。 設置:Apache 2.2.17 - > mod_jk 1.2.26 - > JBoss 4.3 CP01(帶Tomcat 6.0)。應用程序使用JSF 1.2_11,Seam 2.1,RichFaces 3.3.1構建。對於某些AJAX POST請求,tomcat 2分鐘超時
它通常發生在IE瀏覽器(7,8,9)。瀏覽器發送一個ajax請求(RichFaces爲此生成JavaScript代碼)。這個HTTP POST請求被mod_jk轉換成AJP Header和Body數據包併發送給Tomcat。頭文件包說內容長度是1760,但主體數據包在長度字段中沒有內容並且沒有內容。數據包是使用tcpdump捕獲的。每個有問題的請求都不會發生0 ajp主體數據包。所有ajax請求/響應都很小,高達30K,沒有文件上傳,也沒有冗長的數據庫查詢。
在此階段,mod_jk日誌顯示請求在2分鐘內處理完畢。在我們的測試環境中,我們也獲得2,3,4和6分鐘。包裝請求的應用程序過濾器也顯示2分鐘時間;過濾器很簡單 - 在請求之前和之後獲取時間戳並記錄差異。
應用程序的JSF階段監聽器被調用,每個階段(請求,視圖恢復,驗證,調用,渲染)的時間爲100ms - 通常爲應用程序。因此,超時必須發生在請求開始(過濾器之後和第一個JSF階段之前)之間或結束(在呈現JSF階段之後和過濾器結束之前)之間。
有時,mod_jk表示客戶端讀取超時;誰是客戶端 - 瀏覽器,apache?在DEBUG級別,沒有例外記錄在JBoss中。
有人碰到類似的東西嗎? mod_jk reply_timeout設置不能解決問題。直接連接到JBoss會給我們大約30秒的超時時間,這是我們以前從未見過的,我們不知道它是否與2分鐘超時有關。