2013-12-21 3 views
1

jsp에서 out.flush()을 사용하여 브라우저에서 일부 실행 결과를 정기적으로 업데이트하고 있습니다. 그것은 10 분 정도의 긴 실행 시간이며 브라우저가 영원히 기다리는 것처럼 보이기를 원하지 않습니다. (또한 시간 초과 오류를 피할 수 있습니다.)웹 서버에서 out.flush() 문제가 발생했습니다.

Tomcat 포트에 직접 연결할 때 제대로 작동하지만 아파치 웹 서버를 통과 할 때 작동하지 않습니다 (플러시가 이제 웹 서버로 전송되고 웹 서버가 플러시되지 않기 때문일 수 있습니다). 일부 버퍼가 채워질 때까지).

내가 tomcat 포트에 연결하는 것과 동일한 결과를 얻을 수 있지만 어떻게 웹 서버를 사용할 수 있습니까?

(가능한 경우) 간단한 해결책을 찾고 있는데, 아약스를 사용하지 않거나 Tomcat에서 새 스레드를 시작한 다음 정기적으로 브라우저를 새로 고치는 것은 의미가 있습니다.

미리 감사드립니다.

답변

1

이 문제를 다룰 내용은 mod_jk plugin에서 구성 매개 변수가있다.

옵션은 다음과 같습니다 JkOptions +FlushPackets

이 옵션 세트를 갖는, 아파치 웹 서버는 톰캣에서 수신 아무것도 플래시합니다.

+0

정확합니다. 다행입니다. 이것은 "Tomcat에서받은 각 AJP 패킷 덩어리가 끝난 후 Apache의 연결 버퍼를 플러시"하므로 성능에 큰 영향을 줄 수 있습니다. 그렇게하면 분명히 당연한 결과입니다. 물론 장시간 실행되는 작업을 추출하고 전용 Tomcat 엔드 포인트를 설정하면됩니다. 나머지는 FlushPackets를 비활성화하십시오. –

0

Apache timeout을 10 분으로 늘리십시오.

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

그러나 브라우저는 변경없이 10 분 동안 대기합니다. 나는 그것이 영원히 기다리고 있다는 효과를 피하고자한다. 정기적으로 플러시하면 아파치 웹 서버와 바람둥이 사이에 시간 초과 문제가 없습니다. – richardtz

+0

Apache 시간 초과는 플러시 간격보다 높아야합니다. –

+0

그래서 20 초마다 플러싱한다고 가정 해 봅시다. 아파치는 어떤 시간 초과가 있습니까? – richardtz

관련 문제