본문 바로가기
Programming/JAVA

[JAVA/Netty] 재접속 에러 해결?

by Pendine 2021. 11. 12.
728x90

무슨영문인진 모르겠으나 테스트 환경에서는 없는,

현장 기기에 대한 재접속이 안되는 부분으로 인해 완전히 접속을 종료하고

새로운 접속을 시도하도록 코드를 변경하였다.

 

Netty 의 부트스트랩을 grace shutdown 메소드를 통해 완전히 종료하고,

스케줄러를 통해 모든 접속용 객체의 연결 상태 channel 객체를 확인,

이벤트 루프 그룹이 등록이 안되어있으며, 채널이 동작중이 아닌경우 (끊겨 있을때)

새로운 접속을 연결하도록 변경하였다.

 

변경이후 중간중간 확인하는중인데 간혹가다 2개 이상의 접속이 이루어지지만,

해당 기기에 대한 이벤트 그룹이 끊긴 객체는 이후 소멸해버리기 때문인지 서버를 껐다 켜는 로그는 남아있지 않았다.

 

연결리스너 부분을 아무리 수정해도 해결이 안된다.

 

	@Override
	public void operationComplete(ChannelFuture channelFuture) throws Exception {

		try {
			채널퓨처상태 로그출력.
            채널퓨처.채널 로그출력

			if(channelFuture.isCancelled()) {
				channelFuture.channel().eventLoop().schedule(접속용객체, 재접속시간, TimeUnit.SECONDS);
				
				channelFuture.channel().close();
			}
			else if (!channelFuture.isSuccess()) {
				channelFuture.channel().eventLoop().schedule(접속용객체, 재접속시간, TimeUnit.SECONDS);
				
				channelFuture.channel().close();
				
			}else if(!channelFuture.channel().isActive()) {
				channelFuture.channel().eventLoop().schedule(접속용객체, 재접속시간, TimeUnit.SECONDS);
			}

		}
		catch(Exception e) 
		{
			오류로그 출력.
		}
		finally {
		}
	}

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

 

몰라 더이상 이글은 몰라

 

진짜 출장다니면서 별짓 다해봤는데 재접속 시도 잘해서

난 더이상 테스트 해볼수 있는게 없음

 

출장가면서 테스트 프로그램 컴파일해서 집에 외부 포트 열어놓고 접속하는 로그 확인하면서

노트북 핫스팟 연결 시켜줬다 연결 끊었다가 절전모드 시켰다가 다시 켰다가.

집에서 연결 받는 서버 프로그램 끈 상태로 연결 시도했다가 시도하는중에 와이파이도 끊어보고

온갖짓을 다해봐도 재연결 시도 존나 잘함

 

근데 더이상 만약 안된다고 또 연락와?

그럼 난 손 땐다. 못해

 

----- 해결

리스너 문제 아니었음.

https://pendine.tistory.com/71

 

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

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

pendine.tistory.com

 

728x90

댓글