channel의 Registered()가 False가 반환되는 조건 질문드립니다.
서버에 대한 접속을 유지하기 위해
재접속 코드를
ChannelFutureListener클래스를 이용해서
channelFuture.channel().eventLoop().schedule( callableClient, config , TimeUnit.SECONDS);
연결, 연결 종료시 재접속을 위해 callableClient에서
clientChannel = connectChannelFuture.addListener( connectListinner ).sync().channel()
.closeFuture().addListener( closeListenner ).sync().channel();
테스트환경에서는 문제없이 재접속이 계속 잘되고
실환경에서도 재접속이 잘되다가 며칠에 한번꼴로 재접속이 안되서
접속시도, 접속종료, 주기적으로 채널의 상태를 체크하기위해서
channel의 isActive, isOpen, isWritable, isRegistered
channelFuture의 isSuccess, isDone, isCancelled, isCancellable
의 메소드를 확인해보니
연결시도시 정상으로 판단할때 사용한 정보는 isActive만 사용했는데
isActive는 True지만 isRegistered 가 False일때 재접속이 안되는 것 같아서요.
일주일간의 로그를 확인가능한데 지금 재접속이 안된경우는 이것밖에 확인이 안되는데다
테스트 환경에서 동일하게 isRegistered 가 False로 동작하게끔 하여
확인해보려고 하는데 어떻게 해야할까요?
로컬호스트, 같은 망 내의 다른 호스트에 readIdle 시간 초과시 재접속을 하는 방법으로 하고있습니다..