무슨영문인진 모르겠으나 테스트 환경에서는 없는,
현장 기기에 대한 재접속이 안되는 부분으로 인해 완전히 접속을 종료하고
새로운 접속을 시도하도록 코드를 변경하였다.
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
댓글