2010-01-29 7 views
1

Webphere 서버를 사용하고 있습니다. Apache FileUpload 메소드를 사용하여 서블릿을 통해 파일 업로드를 수행하고 있습니다.파일 업로드 중 Ajax 요청이 완료되는 데 오랜 시간이 걸립니다.

요청의 비율이 처리되었음을 나타내는 "백분율"필드를 업데이트하는이 FileUpload에 리스너를 첨부합니다. 요청은 요청을 실행 한 페이지가 응답 완료를 기다릴 필요가 없으므로 사용자에게 빈 페이지 만 표시되지 않도록 요청이 iframe (양식의 대상은 iframe 임)으로 전달됩니다. 진행률 수신기에 대한 참조를 세션에도 추가합니다.

양식 제출을 시작하자마자 JSP 페이지에서 1 초 후 매 초마다 ProgressListener를 검색하고 백분율 필드로 응답하는 서블릿으로 이동하는 ajax 요청을 시작합니다. 이 프로세스는 정상적으로 작동하지만 Websphere에서이 Ajax 요청을 완료하는 데 최대 30 초가 걸릴 수 있습니다! 간단한 Tomcat 서버에서 똑같은 것을 테스트했는데 요청/응답이 1 초 이내에 나옵니다.

무엇이 잘못 될 수 있습니까? 서버 설정입니까? 세션에서 비율을 얻을 수 서블릿 내부 코드를 즉시 요청이로 실행 :

편집, 감사합니다. 병목 현상은 요청을 클라이언트 브라우저로 전달하는 것 같습니다.

답변

1

jsp 페이지를 컴파일하고 캐시하도록 websphere를 구성 했습니까? 아니면 매번 다시 컴파일합니까?

AspectJ 또는 Spring 또는 프로파일 러 중 하나 인 AOP를 사용하여 jj 페이지에서 코드를 변경하지 않고 모니터링 할 수 있도록 ajax 호출의 진행 상황을 확인할 수 있습니다.

프로파일 러는 더 나은 시작점 일 수 있습니다. 따라서 어떤 일이 벌어지는 지 전체적으로 살펴본 다음 측면을 사용하여 세분화 된 방식으로 모니터링하고 병목 현상이 발생한 위치를 결정할 수 있습니다.

jsp 페이지를 프리 컴파일하면 도움이되는지 알 수 있습니다. 이 자습서는 다음과 같이 유용합니다. http://publib.boulder.ibm.com/infocenter/wchelp/v6r0m0/index.jsp?topic=/com.ibm.commerce.samples.doc/tutorial/tdedeployjsp.htm

+0

이 문제는 JSP가 컴파일/프리 컴파일되지 않은 경우 유용하지 않습니다. 264MB 파일을 업로드하여 두 번째 아약스 호출로 하나 이상의 아약스 호출을 생성했습니다. 컴파일은 이미 완료되었습니다. –

+0

따라서 Firebug를 사용하여 브라우저에서 아약스 호출을 프로파일 링하고, Fiddler를 사용하여 트래픽을 모니터링하고 서버를 프로파일 링하여 서버의 속도 저하를 확인하십시오. 이 모든 것 사이에서 문제를 발견해야합니다. –

관련 문제