본문 바로가기
Programming/JAVA

[JAVA / Netty] 클라이언트 오류 해결

by Pendine 2021. 12. 14.
728x90

뭔가 찜찜하긴한데 해결된것같음

기존 소스코드에서 바꾼건 하나도 없음

일주일 이상을 테스트했고 어떤 상황에서도 문제없이 돌아갔었던 코드라 아무런 문제가 없었음.

 

 리눅스 OS 에서 동작하는 프로그램은 프로그램을 실행시킨 사용자가 접속을 종료했을때 전부 종료되는걸로 알고있음.

 문제가 뭐냐면

 이 미친놈이 백그라운드로 실행시키고 나갔는데 프로그램이 어중간하게 살아있엇던건지 뭔지 실행은 되는데 재접속 부분만 죽어버린것...

실행을 잘못시킨 나도 잘못이고 어중간하게 죽은 컴퓨터도 문제라고 남탓시전중

 

-------------------------------------------------------------------------------------------------------

 

리눅스 기반에서 백그라운드로 실행시킬때는 실행 프로그램 뒤에 & 를 이용해서 실행시켜야 하는걸로 알고있음

 

그래서  "java -jar 프로그램명.jar &"  이걸로 실행시켰고

세션을 완전히 종료한 후에 다시 접속해서 tail -f 파일명으로 로그와 DB에 통신 로그, 통신 결과가 찍히는걸 보고 "음 잘 실행됐구만" 했었고 당시에는 포트나 죽은 서버가 없어서 재접속하는 로그가 찍히는게 없어서 아무것도 모르고 넘어가서 무슨 문제가 발생할지도 몰랐엇던것같음...

 

이번에 확인해보니 죽은 서버가 있어서 실행시킬때 nohup 이게 있는거랑 없는거랑 달랐음.

 

지켜볼때 찍히는 로그와 세션을 끊고 다시 접속했을때 찍히는 로그가 달라서 알수 있엇음..

(사실 세션 끊고 재접속 했을때도 끊기전까지 찍히던 로그가 최소 20~30분은 계속 찍히길래 아무문제 없는줄알았음)

 

적어도 내 상식선에서는 세션 나가고나서 프로그램이 완전히 죽던지 해야하는데

그럼 내가 세션을 끊으면 뭔가 유지가 되고있던건가?

 

여튼 해결됐다고 생각하긴하는데...

 

nohup java -jar 프로그램명.jar 1> /dev/null 2>&1 &

실행하는 부분을 바꾸니 해결한 것 같음

 

사실 아직 아리송 해서 좀더 봐야할듯

 

 

==========================================

해결안됨...

 

문제가 뭐냐면 세션 완전히 나가고나서 다시 해당 서버컴퓨터에 접속해서, 다른 서버에 접속시도하는 로그가 찍히는게 보임.

 

이후에 몇시간동안 제대로 동작하다가 어느순간 로그가 안찍힘.

 

가비지 컬랙터가 처리하지 못하게 내가 뭔가 잘못했던가

서버프로그램을 실행시킨 세션이 살아있다가 일정시간 초과되면서 어쩌구저쩌구~~

 

이해가 안되는데

 

하루 이상 돌려봤는데 재접속 시도 잘만하는데 뭘까... 동일하게 컴파일 된 파일로 집 포트 열어놓고선 확인해봤는데

잘만되는데..... 현장이랑 테스트환경이랑 뭔가.. 뭔가다른듯...

 

해결 

https://pendine.tistory.com/71

 

[JAVA / Netty] 클라이언트 재접속 오류 해결

https://pendine.tistory.com/42 [JAVA / Netty] 클라이언트 오류 해결 뭔가 찜찜하긴한데 해결된것같음 기존 소스코드에서 바꾼건 하나도 없음 일주일 이상을 테스트했고 어떤 상황에서도 문제없이 돌아갔

pendine.tistory.com

 

728x90

댓글