파일다운로드 처리 시 OutOfMemory가 발생합니다.
- 작성자
- 관리자
- 작성일자
- 2010-09-06
- 조회수
- 4,445
Q
파일다운로드 처리를 하고 있는데.. 테스트시에는 문제가 없지만.. 운영 시에 종종 OutOfMemory 문제가 발생합니다.
내부적으로 buffering 처리를 하기 때문에 문제가 없는 것 같은데.. 어느 부분이 문제일까요?
A
안녕하세요..
파일 다운로드의 경우는 서버상에 저장되어 있는 물리적 파일을 HttpServletResponse 객체의 OutputStream에 buffering을 통해 stream 방식으로 처리됩니다.
이 경우 버퍼링되기 때문에 OutOfMemory 문제의 소지는 없는 것 같습니다.
다만, reponse 객체에 설정이 잘못된 경우 OutOfMemory 문제가 발생될 수 있습니다. 문제의 설정은 bufferSize로 다음과 같은 코드입니다.
response.setBufferSize(fSize);
fSize가 파일 전체 사이즈이거나 일반적인 버퍼 사이즈보다 크면 OutOfMemory 문제의 가능성이 있습니다. (일부 servlet container의 경우는 내부적으로 작게 조절함)
이 부분을 확인하셔서 삭제해 주시면 될 것 같습니다.
그럼..
파일 다운로드의 경우는 서버상에 저장되어 있는 물리적 파일을 HttpServletResponse 객체의 OutputStream에 buffering을 통해 stream 방식으로 처리됩니다.
이 경우 버퍼링되기 때문에 OutOfMemory 문제의 소지는 없는 것 같습니다.
다만, reponse 객체에 설정이 잘못된 경우 OutOfMemory 문제가 발생될 수 있습니다. 문제의 설정은 bufferSize로 다음과 같은 코드입니다.
response.setBufferSize(fSize);
fSize가 파일 전체 사이즈이거나 일반적인 버퍼 사이즈보다 크면 OutOfMemory 문제의 가능성이 있습니다. (일부 servlet container의 경우는 내부적으로 작게 조절함)
이 부분을 확인하셔서 삭제해 주시면 될 것 같습니다.
그럼..