2009-07-10 2 views
0

완료까지 5 분이 걸리는 긴 HTTP 요청 (대형 Excel 파일 생성 - 약 60K 레코드 정도)이 있습니다. 얼음면이있는 바퀴는 연결이 끊어 졌음을 보여 주며 파일이 서버에 준비되어 있어도 ICEFaces 페이지가 죽어서 파일을 새로 고쳐야하고 파일을 가져올 수 없습니다! 방법 제한 시간 연장에 대한 본인은 web.xml 파일에 다음을 시도했지만 도움이되지 않았다 :서버 연결이 긴 요청이있는 ICEFaces와 함께 종료됩니다.

코드 -의 Web.xml :

..... 
<context-param> 
     <param-name>blockingConnectionTimeout</param-name> 
     <param-value>600000</param-value> 
</context-param> 
<context-param> 
     <param-name>synchronousUpdate</param-name> 
     <param-value>false</param-value> 
</context-param> 
<context-param> 
     <param-name>connectionTimeout</param-name> 
     <param-value>600000</param-value> 
</context-param> 
<context-param> 
     <param-name>heartbeatRetries</param-name> 
     <param-value>20</param-value> 
</context-param> 
<context-param> 
     <param-name>heartbeatInterval</param-name> 
     <param-value>400000</param-value> 
</context-param> 
<context-param> 
     <param-name>heartbeatTimeout</param-name> 
     <param-value>2000000</param-value> 
</context-param> 
..... 

어떤 아이디어?

감사합니다,

답변

1

는 클라이언트 제한 시간이 될 것 같습니다! ajax 응답으로 비동기 생성을 시도하십시오.

+0

예 클라이언트 시간 초과입니다. 비동기 생성을 수행하는 방법? 의사 코드 – Tam

+0

을 제공해 주시겠습니까? 1. 고유 ID로 파일 처리를 수행하는 ajax 요청을 작성하십시오. 2. 요청 버튼을 회 전자 아이콘 (또는 로딩 아이콘)으로 교체하십시오. 매번 처리 시간이 거의 6 분이라고 확신하는 경우 카운트 다운을 추가하십시오 (약 5,4 분 ...). 3. 파일 처리가 성공하면 리턴하는 서블릿을 작성하십시오. (id는 매개 변수로) 4. 처리를 시작한 페이지에서 매 X 초마다 주어진 ID로이 "check"서블릿을 호출하도록합니다. 파일이 성공적이면 파일을 표시하는 페이지에 대한 링크를 제공 할 수 있습니다. 끝났습니다;) 더 이상 시간 초과 문제가 없습니다. –

0

클라이언트/서버 간의 불필요한 핸드 셰이 킹을 방지하기 위해 버퍼 크기를 증가 된 값으로 설정하십시오.

<context-param> 
    <param-name>facelets.BUFFER_SIZE</param-name> 
    <param-value>500000</param-value> 
</context-param> 

당신은이 작은 스위치로 대폭 자신의 JSF의 성능을 증가 사람들로부터 긍정적 인 피드백을 많이 찾을 수 있습니다

의 web.xml. 어쩌면 그것은 당신 상황에서도 도움이 될 것입니까? 이 문제에 대한 자세한 내용을 모른 채

+0

의견을 주셔서 감사합니다 ... 나는 그것이 도움이되지 않았다고 시도 :( – Tam

0

, 여기에 내가 걸릴 것 접근 방식 :

  1. 사용자가 엑셀 파일을 생성하는 링크를 클릭합니다. "처리 중 ..."과 같은 링크 대신 일부 메시지를 표시하십시오.

  2. 정기적으로 (매 3 초마다) 파일이 생성되었는지 서버에 물어보십시오. 몇 초 후에 다시 묻습니다.

  3. 일단 파일 생성이 완료되면 다운로드 영역의 서버에 생성되어 저장되어있는 "Download yourfile.xls"파일의 링크로 "Processing ..."텍스트를 변경하십시오.

이렇게하면 브라우저가 파일 생성을 기다리는 데 방해가되지 않습니다.

관련 문제