2013-12-21 127 views
1

我在jsp中使用out.flush()來定期更新瀏覽器中某些執行的結果。這是一個長時間的執行,大約10分鐘,我不希望瀏覽器看起來像是在等待着。 (它也避免了超時錯誤)。使用out.flush()與web服務器問題

它工作正常,當直接連接到tomcat端口,但是當我通過apache web服務器它不工作(這可能是因爲刷新現在發送到web服務器和web服務器不刷新直到填充一些緩衝區)。

任何想法我怎麼能達到我連接到tomcat端口,但通過網絡服務器相同的結果?

我正在尋找一個簡單的解決方案(如果可能的話),我的意思不是ajax或在tomcat中啓動一個新線程,然後定期刷新瀏覽器,因爲它們意味着很多更改。

在此先感謝。

回答

1

mod_jk plugin中有一個配置參數可以解決這個問題。

的選項是:JkOptions +FlushPackets

有了這個選項設置,Apache Web服務器將刷新任何東西,它從Tomcat接收。

+0

正確,很高興它適合你。因爲這樣「在從Tomcat接收到每個AJP數據包塊後刷新Apache的連接緩衝區」,性能影響可能非常嚴重。如果這種情況發生,那麼顯然的措施當然是提取長時間運行的操作,併爲此設置一個專用的Tomcat端點(其餘的禁用FlushPackets)。 –

0

Apache timeout增加到10min?

# 
# Timeout: The number of seconds before receives and sends time out. 
# 
Timeout 600 
+0

但是,然後瀏覽器將等待10分鐘,沒有任何變化。我想避免它永遠在等待的效果。如果我經常刷新,我的Apache web服務器和tomcat之間沒有超時問題。 – richardtz

+0

Apache超時只需要高於刷新間隔。 –

+0

那麼,假設我每20秒沖洗一次,Apache應該有多長時間? – richardtz