아파치 웹서버 HTTP Request Crash


일단 아무 관련없는 짤방.


오늘 상당히 황당한 일을 겼었습니다.

선배가 짠 JSP 코드가 PC나 개발서버에서는 잘 돌아가는데 실제 운영서버에 올렸을 때 오류가 나서
그 코드를 같이 보고 있었습니다. 코드 내용은 굉장히 단순한것이,
apache  commons 라이브러리를 써서 multipart/form-request로 들어온 파일을 받아
임시디렉터리에 저장한 후 스트림을 따서 DB CLOB에 밀어넣는건데
운영서버에만 올려놓으면 같이 넘어와야 할 다른 form field의 값들이 넘어오지를 않았습니다.

더군다나 클라이언트의 웹브라우저에서는 jsp 페이지로 이동임에도 파일 다운로드창이 뜨더군요..(클라이언트는 IE6입니다)

서버환경은 apache -> Weblogic WAS -> DB의 삼단 구성입니다.

몇번 해보다가 답답해서 HttpServletRequest로 넘어온 내용을 통채로 화면에 찍어봤습니다.
InputStream is = request.getInputStream();
int ch = -1;
while( (ch = is.read()) != -1 ) out.print( (char)ch );
is.close();


정상적인 출력은 다음과 같이 나와야 합니다.

--6G+f
Content-Disposition: form-data; name="name"

Gisle Aas
--6G+f
Content-Disposition: form-data; name="email"

gisle@aas.no
--6G+f
Content-Disposition: form-data; name="gender"

M
--6G+f
Content-Disposition: form-data; name="born"

1964
--6G+f
Content-Disposition: form-data; name="init"; filename=".profile"
Content-Type: text/plain

PATH=/local/perl/bin:$PATH
export PATH


--6G+f--
각 바운더리 안에 해당 필드의 타입과, 파일의 경우 파일 이름 등이 붙어서 넘어오지요.
그런데 막상 출력을 해 보니 파일 내용과 파일보다 앞에 나와야 할 필드들의 내용이 전부 사라지고 파일 중간부터
요청의 끝부분 까지만 출력이 되었습니다.

그러니 파라미터 몇개를 읽지 못해 처리는 계속 오류가 나고 파일 업로드는 안되고 그렇다고 날아오는 리퀘스트에 문제가 있다는
로그가 찍히는것도 아니고...

한참 삽질을 하다가 문제를 발견했는데 가장 앞단에 있던 apache가 문제를 일키고 있었습니다.
테스트 도중에 갑자기 apache가 응답을 처리하지 못해서 죽였다 살렸는데

그때부터 오류나던 프로그램이 술술 돌아가더군요..;;
아파치쪽에 뭔가 문제가 있어 WAS로 넘겨줘야 할 request의 일부를 깨뜨렸었나봅니다.

범인은 잡았는데 아직도 원인이 뭔지 모릅니다;; 내일 출근하면 원인조사부터 해야할듯 하네요.

by Rei | 2009/04/22 01:01 | 전산질 | 트랙백 | 덧글(0)

트랙백 주소 : http://reino.egloos.com/tb/1379974
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶