Q&A

  • 어플리케이션 응답없음 걸린 라인 찾기 가능한지요?

서버쪽에서 돌아가는 실시간처리 어플리케이션이 있습니다.

이넘이 종종 응답없음 상태가되어 강제로 죽이고 새로 실행시키는 문제가 발생합니다.

어느 라인에서 데이터를 처리하다가 응답없음 상태로 되는지 찾아내기가 힘드네요. 디버깅 하기도 힘들고
응답없음 증상이 어떨때 생기는지 재현하기도 힘들고...
어휴..암튼 힘드네요


혹시 어떤 라인에서 응답없음 상태가 되었는지 로그를 남겨서 알 수가 있나요?


감사합니다.

2  COMMENTS
  • Profile
    구창민 2011.08.11 22:13

    만약, 응답없음 상태일때 그 어플을 강제 종료후 재시작 시킬 수 있다는 상황이라면

    주기적으로 그 어플이 응답없음 상태인지를 체크하는 프로세스를 하나 더 기동하시고 

    응답없음 상태일때마다 재시작을 해주시는 것이 빠른 대응법이 되지 않을까 싶네요..

    방법은 'IsHungThread' 라는 문자열로 검색해 보시면 쉽게 찾으실 수 있습니다.

    대안이라고 적은 글인데 뻘글이 되지 않았으면 좋겠네요..

  • Profile
    이정욱 2011.11.03 07:48

    응답 없음 상태의 서버는... 분명 설계상의 문제일 것입니다.. 그 부분을 찾으셔야 하는데....

    보통은 쓰레드를 잘 못 다루어서 나오는 문제 입니다.

    가장 좋은 방법은 각 루틴마다 로그를 기록하게 해서 나중에 그 로그를 분석하면서 무엇이 문제인지 밝혀서 수정하는 것입니다.

    또 한가지 방법은 상용컴포넌트 중에 EurekaLog 라는 것이 있습니다.

    이놈은 오류가 나면 어느 파일의 어느 부분에서 문제가 생겼다고 보고해줍니다.

    한번 트라이얼로 그 부분을 찾아보시는것도 좋은 방법일것 같습니다.