2013-12-21 73 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