리스너클래스가 접속시 사용하는 클래스에서 제대로 생성된다면 연결 종료시 정확하게 동작하지만
문제는 클래스 생성이 제대로 돼지 않아서 생기는 문제였다.
무슨말이냐면
연결 시도시 연결 종료시 사용하는 리스너 클래스를 구분하여
connect리스너, closed connect 리스너라는 클래스로 구분하여 사용하고있었는데
설마 자바 클래스 생성이 안되서 생기는 문제겠냐며
일단 이놈들이 제대로 시작하는 시점이 언제고 언제등록됐는지 알아보기위해
생성자를 이용해서 생성자 작동시 바로 로그를 출력하도록 했는데
설마하던 일이 일어났음.
연결 시도시 사용하는 connect 리스너는 항상 잘 작동함.
잘 작동하는 놈은 conenct 리스너는 대체로 항상 작동하는데 (작동이 안되면 바로 티가 나겠지)
close 리스너 클래스가 생성이 안되는듯하다.
아래의 첨부한 로그를 확인해보면 항상 connect 리스너가 생성된뒤 close connect 리스너가 생성됌을 알수있는데
connect 리스너 로그뒤에 아무런 로그도 남지 않은걸 알 수 있다.
객체 생성이 안되는건 대체 무슨 문제인가...
매번 InetAddress 클래스를 이용해서 새로운 연결정보를 삽입해주고
연결 시도하는 connect메소드를 통해서 채널 퓨처 만들고
채널 퓨처의 내부에 있는 채널에 연결 시도시 사용할 리스너 클래스를 붙여주고 연결 종료시 사용할 리스너 클래스를 붙여주는데
아주 자바의 기본적인 동작인데
불과 1분전까지만해도 잘 동작하던 클래스가 갑자기 동작을 안한다라...
어떤.... 걸 해야지 해결될수있을까
일단 스택 오버플로에 있는 소스를 참고해서
재귀호출로 동작하게 만들긴했는데
재귀호출 이놈은 별로 그닥 믿음이 안가는 놈이라 걱정임
분명히 똑같은 일이 일어날 것 같은데
객체생성이 안되서 일어난 일이라 무슨 말도안되는 일인지....
로그 내용
2021-07-21 00:53:45.005 [INFO ] c.i.network.netty.codec.---TCPEncoder [encode : 52] | TARGET --- ID : 16 | OPCODE : 12 | VALUE : 0
2021-07-21 00:53:55.951 [INFO ] com.company.handler.---IdleStateHandler [channelIdle : 77] | --- ID : 16 | Active channelIdle | ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xe9f72eb8, L:/***.**.**.*** - R:/***.**.**.***]) | ctx.channel.toString : [id: 0xe9f72eb8, L:/***.**.**.*** - R:/***.**.**.***]
2021-07-21 00:53:55.952 [INFO ] com.company.handler.---IdleStateHandler [channelIdle : 83] | --- ID : 16 | channelIdle | IdleStateEvent : READER_IDLE
2021-07-21 00:53:55.952 [INFO ] com.company.handler.---IdleStateHandler [channelIdle : 88] | Terminate Reader idle channel | 읽기 대기시간 초과 | --- ID : 16 | #Remote[***.**.**.***::ChannelHandlerContext(---IdleStateHandler, [id: 0xe9f72eb8, L:/***.**.**.*** - R:/***.**.**.***])]
2021-07-21 00:53:55.952 [INFO ] com.company.handler.---IdleStateHandler [channelIdle : 92] | Terminate | --- ID : 16 | Reader idle channel | Reader idle Time : 60
2021-07-21 00:53:55.952 [INFO ] com.company.handler.---IdleStateHandler [close : 363] | ---ID : 16 | close | ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xe9f72eb8, L:/***.**.**.*** - R:/***.**.**.***:]) | ctx.channel.toString : [id: 0xe9f72eb8, L:/***.**.**.*** - R:/***.**.**.***]
2021-07-21 00:53:55.952 [INFO ] com.company.handler.---IdleStateHandler [close : 383] | --- : 16 | UserIdleStateHandler : ChannelClosed - Channel #1866933932 : /***.**.**.***
2021-07-21 00:53:55.953 [INFO ] c.i.n.n.listener.CloseFutureListener [operationComplete : 46] | --- ID : 16 | 연결 종료 리스너 동작 | awaitUninterruptibly 동작 전
2021-07-21 00:53:55.953 [INFO ] c.i.n.n.listener.CloseFutureListener [operationComplete : 48] | --- ID : 16 | 연결 종료 리스너 동작 | awaitUninterruptibly 동작 후
2021-07-21 00:53:55.953 [INFO ] c.i.n.n.listener.CloseFutureListener [StringChannelStatus : 99] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isSuccess : true
2021-07-21 00:53:55.954 [INFO ] c.i.n.n.listener.CloseFutureListener [StringChannelStatus : 100] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isDone : true
2021-07-21 00:53:55.954 [INFO ] c.i.n.n.listener.CloseFutureListener [StringChannelStatus : 101] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isCancelled : false
2021-07-21 00:53:55.954 [INFO ] c.i.n.n.listener.CloseFutureListener [StringChannelStatus : 102] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isCancellable: false
2021-07-21 00:53:55.955 [INFO ] c.i.n.n.listener.CloseFutureListener [StringChannelStatus : 103] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isVoid : false
2021-07-21 00:53:55.955 [INFO ] c.i.n.n.listener.CloseFutureListener [operationComplete : 60] | --- ID : 16 | channelFuture isSuccess | Reconnect Try
2021-07-21 00:53:55.956 [INFO ] com.company.handler.---IdleStateHandler [channelInactive : 271] | --- ID : 16 | channelInactive | ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xe9f72eb8, L:/***.**.**.*** ! R:/***.**.**.***]) | ctx.channel.toString : [id: 0xe9f72eb8, L:/***.**.**.*** ! R:/***.**.**.***]
2021-07-21 00:53:55.956 [INFO ] com.company.handler.---IdleStateHandler [channelInactive : 277] | --- ID : 16 연결 종료
2021-07-21 00:53:55.957 [INFO ] com.company.handler.---IdleStateHandler [channelInactive : 278] | --- ID : 16 | channelInactive | #Remote[***.**.**.***:734395063]
2021-07-21 00:53:55.957 [INFO ] com.company.handler.---IdleStateHandler [channelInactive : 286] | --- ID : 16 | channelInactive | --------change ==> 상태1
2021-07-21 00:53:55.957 [INFO ] com.company.handler.---IdleStateHandler [channelInactive : 292] | --- ID : 16 | channelInactive | ---ContStatus.totalUpdate()
2021-07-21 00:53:55.971 [INFO ] com.company.handler.---IdleStateHandler [channelUnregistered : 446] | --- ID : 16 | channelUnregistered | ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xe9f72eb8, L:/***.**.**.*** ! R:/***.**.**.***]) | ctx.channel.toString : [id: 0xe9f72eb8, L:/***.**.**.*** ! R:/***.**.**.***]
2021-07-21 00:53:55.971 [INFO ] com.company.handler.---IdleStateHandler [channelUnregistered : 454] | --- ID : 16 | channelUnregistered | CTX.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xe9f72eb8, L:/***.**.**.*** ! R:/***.**.**.***])
2021-07-21 00:53:56.956 [INFO ] c.company.network.netty.NettyTCPClient [call : 152] | --- ID : 16 | NettyTCPClient | InetSocketAddress Setting | HOST : ***.**.**.*** | PORT : ----
2021-07-21 00:53:56.957 [INFO ] c.company.network.netty.NettyTCPClient [call : 171] | --- ID : 16 | channel is Active : false
2021-07-21 00:53:56.957 [INFO ] c.company.network.netty.NettyTCPClient [call : 172] | --- ID : 16 | channel is Open : true
2021-07-21 00:53:56.957 [INFO ] c.company.network.netty.NettyTCPClient [call : 173] | --- ID : 16 | channel is Writable : true
2021-07-21 00:53:56.958 [INFO ] c.company.network.netty.NettyTCPClient [call : 174] | --- ID : 16 | channel is Registered : true
2021-07-21 00:53:56.958 [INFO ] c.company.network.netty.NettyTCPClient [call : 178] | --- ID : 16 | 채널 열림
2021-07-21 00:53:56.958 [INFO ] c.company.network.netty.NettyTCPClient [call : 181] | NettyTCPClient | call() | --- ID : 16 | netty tcp client connectChannelFuture.isDone() : false
2021-07-21 00:53:56.958 [INFO ] c.company.network.netty.NettyTCPClient [call : 182] | NettyTCPClient | call() | --- ID : 16 | netty tcp client connectChannelFuture.isSuccess() : false
2021-07-21 00:53:56.959 [INFO ] c.company.network.netty.NettyTCPClient [call : 183] | NettyTCPClient | call() | --- ID : 16 | netty tcp client connectChannelFuture.isCancellable() : false
2021-07-21 00:53:56.959 [INFO ] c.company.network.netty.NettyTCPClient [call : 184] | NettyTCPClient | call() | --- ID : 16 | netty tcp client connectChannelFuture.isCancelled() : false
2021-07-21 00:53:56.959 [INFO ] c.company.network.netty.NettyTCPClient [call : 185] | NettyTCPClient | call() | --- ID : 16 | netty tcp access info : /***.**.**.***
2021-07-21 00:53:56.959 [INFO ] c.company.network.netty.NettyTCPClient [call : 186] | NettyTCPClient | call() | --- ID : 16 | netty tcp client channel future : [id: 0xb8800888]
2021-07-21 00:53:56.959 [INFO ] c.i.n.n.listener.ConnectFutureListener [<init> : 36] | ---_ID : 16 | ConnectFutureListener 생성
2021-07-21 00:53:56.959 [INFO ] c.i.n.n.listener.CloseFutureListener [<init> : 31] | ---_ID : 16 | CloseFutureListener 생성
2021-07-21 00:53:56.960 [INFO ] c.i.n.n.listener.ConnectFutureListener [StringChannelStatus : 133] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isSuccess : true
2021-07-21 00:53:56.960 [INFO ] c.i.n.n.listener.ConnectFutureListener [StringChannelStatus : 134] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isDone : true
2021-07-21 00:53:56.960 [INFO ] c.i.n.n.listener.ConnectFutureListener [StringChannelStatus : 135] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isCancelled : false
2021-07-21 00:53:56.960 [INFO ] c.i.n.n.listener.ConnectFutureListener [StringChannelStatus : 136] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isCancellable: false
2021-07-21 00:53:56.961 [INFO ] c.i.n.n.listener.ConnectFutureListener [StringChannelStatus : 137] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isVoid : false
2021-07-21 00:53:56.961 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 53] | channel is Active : true
2021-07-21 00:53:56.961 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 54] | channel is Open : true
2021-07-21 00:53:56.961 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 55] | channel is Writable : true
2021-07-21 00:53:56.962 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 56] | channel is Registered : true
2021-07-21 00:53:56.962 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 58] | --- ID : 16 연결 시도
2021-07-21 00:53:56.962 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 65] | --- ID : 16 | channelFuture is not null | channelFuture toString : AbstractBootstrap$PendingRegistrationPromise@3cf7a094(success)
2021-07-21 00:53:56.963 [ERROR] c.i.n.n.listener.ConnectFutureListener [operationComplete : 112] | 접속시 예외처리. 접속 예외 | NullPointerException | Exception Log : java.lang.NullPointerException
at com.company.util.LogHelper.getPrintStackTrace(LogHelper.java:11)
at com.company.network.netty.listener.ConnectFutureListener.operationComplete(ConnectFutureListener.java:83)
at com.company.network.netty.listener.ConnectFutureListener.operationComplete(ConnectFutureListener.java:1)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:504)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:483)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424)
at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:103)
at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:306)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:341)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:745)
2021-07-21 00:53:56.963 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 169] | --- : 16 | channelActive | ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xb8800888, L:/***.**.**.*** - R:/***.**.**.***]) | ctx.channel.toString : [id: 0xb8800888, L:/***.**.**.*** - R:/***.**.**.***]
2021-07-21 00:53:56.964 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 182] | --- ID : 16 연결 성공
2021-07-21 00:53:56.964 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 184] | --- ID : 16 채널 세팅. CTX.toString
2021-07-21 00:53:56.965 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 197] | --- ID : 16 연결 성공시간 : 20210721005356
2021-07-21 00:53:56.965 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 204] | --- ID : 16 | channelActive | --------change ==> 상태0
2021-07-21 00:53:56.965 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 210] | --- ID : 16 IP : ***.**.**.*** | ChannelActive --------------------------------------
2021-07-21 00:53:56.966 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 213] | 채널값 세팅 ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xb8800888, L:/***.**.**.*** - R:/***.**.**.***]) | channel.toString : [id: 0xb8800888, L:/***.**.**.*** - R:/***.**.**.***] | channel Hashcode : 1184025189
2021-07-21 00:53:56.966 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 218] | --- ID : 16 채널값 세팅 시 ClientForm 사용
2021-07-21 00:53:56.966 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 223] | --- ID : 16 | Channel active | send message Context : --------
2021-07-21 00:53:56.967 [INFO ] c.i.network.netty.codec.---TCPEncoder [encode : 48] | 메시지 준비됨 : 제어기에 대한 요청 메시지로 변환 가능
2021-07-21 00:53:56.967 [INFO ] c.i.network.netty.codec.---TCPEncoder [encode : 52] | TARGET --- ID : 16 | OPCODE : 12 | VALUE : 0
2021-07-21 00:54:00.001 [INFO ] com.company.job.---CheckLastMessageTime [executeInternal : 45] | --- connection status [ ID : 16 | Last Message Date : 20210721005356 | Now Message Date : 20210721005400 ]
2021-07-21 00:54:00.001 [INFO ] com.company.job.---CheckLastMessageTime [executeInternal : 58] | --- connection status [ ID : 16 | nowTime : 1626796440000 | LastMessageTiem : 1626796436000 | diff seconds : 4 ]
2021-07-21 00:54:00.002 [INFO ] com.company.service.---_------_STATUS [update : 75] | ------ vo --- ID : 16 | ------ vo --- ----_----_--: PC000032 | ------ vo --- parking STATUS : 만차
2021-07-21 00:54:00.004 [INFO ] com.company.job.---ToSendPacketJob [executeInternal : 51] | send to --- the packet Job Start...
.....
2021-07-21 00:54:56.988 [INFO ] com.company.handler.---IdleStateHandler [channelIdle : 77] | --- ID : 16 | Active channelIdle | ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xb8800888, L:/***.**.**.*** - R:/***.**.**.***]) | ctx.channel.toString : [id: 0xb8800888, L:/***.**.**.*** - R:/***.**.**.***]
2021-07-21 00:54:56.988 [INFO ] com.company.handler.---IdleStateHandler [channelIdle : 83] | --- ID : 16 | channelIdle | IdleStateEvent : READER_IDLE
2021-07-21 00:54:56.989 [INFO ] com.company.handler.---IdleStateHandler [channelIdle : 88] | Terminate Reader idle channel | 읽기 대기시간 초과 | --- ID : 16 | #Remote[***.**.**.***:ChannelHandlerContext(---IdleStateHandler, [id: 0xb8800888, L:/***.**.**.*** - R:/***.**.**.***])]
2021-07-21 00:54:56.989 [INFO ] com.company.handler.---IdleStateHandler [channelIdle : 92] | Terminate | --- ID : 16 | Reader idle channel | Reader idle Time : 60
2021-07-21 00:54:56.989 [INFO ] com.company.handler.---IdleStateHandler [close : 363] | ---ID : 16 | close | ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xb8800888, L:/***.**.**.*** - R:/***.**.**.***]) | ctx.channel.toString : [id: 0xb8800888, L:/***.**.**.*** - R:/***.**.**.***]
2021-07-21 00:54:56.989 [INFO ] com.company.handler.---IdleStateHandler [close : 383] | --- : 16 | UserIdleStateHandler : ChannelClosed - Channel #1184025189 : /***.**.**.***
2021-07-21 00:54:56.990 [INFO ] c.i.n.n.listener.CloseFutureListener [operationComplete : 46] | --- ID : 16 | 연결 종료 리스너 동작 | awaitUninterruptibly 동작 전
2021-07-21 00:54:56.990 [INFO ] c.i.n.n.listener.CloseFutureListener [operationComplete : 48] | --- ID : 16 | 연결 종료 리스너 동작 | awaitUninterruptibly 동작 후
2021-07-21 00:54:56.990 [INFO ] c.i.n.n.listener.CloseFutureListener [StringChannelStatus : 99] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isSuccess : true
2021-07-21 00:54:56.991 [INFO ] c.i.n.n.listener.CloseFutureListener [StringChannelStatus : 100] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isDone : true
2021-07-21 00:54:56.991 [INFO ] c.i.n.n.listener.CloseFutureListener [StringChannelStatus : 101] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isCancelled : false
2021-07-21 00:54:56.991 [INFO ] c.i.n.n.listener.CloseFutureListener [StringChannelStatus : 102] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isCancellable: false
2021-07-21 00:54:56.992 [INFO ] c.i.n.n.listener.CloseFutureListener [StringChannelStatus : 103] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isVoid : false
2021-07-21 00:54:56.992 [INFO ] c.i.n.n.listener.CloseFutureListener [operationComplete : 60] | --- ID : 16 | channelFuture isSuccess | Reconnect Try
2021-07-21 00:54:56.993 [INFO ] com.company.handler.---IdleStateHandler [channelInactive : 271] | --- ID : 16 | channelInactive | ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xb8800888, L:/***.**.**.*** ! R:/***.**.**.***]) | ctx.channel.toString : [id: 0xb8800888, L:/***.**.**.*** ! R:/***.**.**.***]
2021-07-21 00:54:56.993 [INFO ] com.company.handler.---IdleStateHandler [channelInactive : 277] | --- ID : 16 연결 종료
2021-07-21 00:54:56.993 [INFO ] com.company.handler.---IdleStateHandler [channelInactive : 278] | --- ID : 16 | channelInactive | #Remote[***.**.**.***:1392090695]
2021-07-21 00:54:56.994 [INFO ] com.company.handler.---IdleStateHandler [channelInactive : 286] | --- ID : 16 | channelInactive | --------change ==> 상태1
2021-07-21 00:54:56.994 [INFO ] com.company.handler.---IdleStateHandler [channelInactive : 292] | --- ID : 16 | channelInactive | ---ContStatus.totalUpdate()
2021-07-21 00:54:56.998 [INFO ] com.company.handler.---IdleStateHandler [channelUnregistered : 446] | --- ID : 16 | channelUnregistered | ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xb8800888, L:/***.**.**.*** ! R:/***.**.**.***]) | ctx.channel.toString : [id: 0xb8800888, L:/***.**.**.*** ! R:/***.**.**.***]
2021-07-21 00:54:56.998 [INFO ] com.company.handler.---IdleStateHandler [channelUnregistered : 454] | --- ID : 16 | channelUnregistered | CTX.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0xb8800888, L:/***.**.**.*** ! R:/***.**.**.***])
2021-07-21 00:54:57.994 [INFO ] c.company.network.netty.NettyTCPClient [call : 152] | --- ID : 16 | NettyTCPClient | InetSocketAddress Setting | HOST : ***.**.**.*** | PORT : ----
2021-07-21 00:54:57.994 [INFO ] c.company.network.netty.NettyTCPClient [call : 171] | --- ID : 16 | channel is Active : false
2021-07-21 00:54:57.994 [INFO ] c.company.network.netty.NettyTCPClient [call : 172] | --- ID : 16 | channel is Open : true
2021-07-21 00:54:57.995 [INFO ] c.company.network.netty.NettyTCPClient [call : 173] | --- ID : 16 | channel is Writable : true
2021-07-21 00:54:57.995 [INFO ] c.company.network.netty.NettyTCPClient [call : 174] | --- ID : 16 | channel is Registered : true
2021-07-21 00:54:57.995 [INFO ] c.company.network.netty.NettyTCPClient [call : 178] | --- ID : 16 | 채널 열림
2021-07-21 00:54:57.995 [INFO ] c.company.network.netty.NettyTCPClient [call : 181] | NettyTCPClient | call() | --- ID : 16 | netty tcp client connectChannelFuture.isDone() : false
2021-07-21 00:54:57.996 [INFO ] c.company.network.netty.NettyTCPClient [call : 182] | NettyTCPClient | call() | --- ID : 16 | netty tcp client connectChannelFuture.isSuccess() : false
2021-07-21 00:54:57.996 [INFO ] c.company.network.netty.NettyTCPClient [call : 183] | NettyTCPClient | call() | --- ID : 16 | netty tcp client connectChannelFuture.isCancellable() : false
2021-07-21 00:54:57.996 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 169] | --- : 16 | channelActive | ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0x7a7af8e4, L:/***.**.**.*** - R:/***.**.**.***]) | ctx.channel.toString : [id: 0x7a7af8e4, L:/***.**.**.*** - R:/***.**.**.***]
2021-07-21 00:54:57.996 [INFO ] c.company.network.netty.NettyTCPClient [call : 184] | NettyTCPClient | call() | --- ID : 16 | netty tcp client connectChannelFuture.isCancelled() : false
2021-07-21 00:54:57.996 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 182] | --- ID : 16 연결 성공
2021-07-21 00:54:57.996 [INFO ] c.company.network.netty.NettyTCPClient [call : 185] | NettyTCPClient | call() | --- ID : 16 | netty tcp access info : /***.**.**.***
2021-07-21 00:54:57.997 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 184] | --- ID : 16 채널 세팅. CTX.toString
2021-07-21 00:54:57.997 [INFO ] c.company.network.netty.NettyTCPClient [call : 186] | NettyTCPClient | call() | --- ID : 16 | netty tcp client channel future : [id: 0x7a7af8e4, L:/***.**.**.*** - R:/***.**.**.***]
2021-07-21 00:54:57.997 [INFO ] c.i.n.n.listener.ConnectFutureListener [<init> : 36] | ---_ID : 16 | ConnectFutureListener 생성
2021-07-21 00:54:57.997 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 197] | --- ID : 16 연결 성공시간 : 20210721005457
2021-07-21 00:54:57.997 [INFO ] c.i.n.n.listener.CloseFutureListener [<init> : 31] | ---_ID : 16 | CloseFutureListener 생성
2021-07-21 00:54:57.997 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 204] | --- ID : 16 | channelActive | --------change ==> 상태0
2021-07-21 00:54:57.998 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 210] | --- ID : 16 IP : ***.**.**.*** | ChannelActive --------------------------------------
2021-07-21 00:54:57.998 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 213] | 채널값 세팅 ctx.toString : ChannelHandlerContext(---IdleStateHandler, [id: 0x7a7af8e4, L:/***.**.**.*** - R:/***.**.**.***]) | channel.toString : [id: 0x7a7af8e4, L:/***.**.**.*** - R:/***.**.**.***] | channel Hashcode : 1456497212
2021-07-21 00:54:57.999 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 218] | --- ID : 16 채널값 세팅 시 ClientForm 사용
2021-07-21 00:54:57.999 [INFO ] com.company.handler.---IdleStateHandler [channelActive : 223] | --- ID : 16 | Channel active | send message Context : --------
2021-07-21 00:54:58.000 [INFO ] c.i.network.netty.codec.---TCPEncoder [encode : 48] | 메시지 준비됨 : 제어기에 대한 요청 메시지로 변환 가능
2021-07-21 00:54:58.000 [INFO ] c.i.network.netty.codec.---TCPEncoder [encode : 52] | TARGET --- ID : 16 | OPCODE : 12 | VALUE : 0
2021-07-21 00:54:58.005 [INFO ] c.i.n.n.listener.ConnectFutureListener [StringChannelStatus : 133] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isSuccess : true
2021-07-21 00:54:58.005 [INFO ] c.i.n.n.listener.ConnectFutureListener [StringChannelStatus : 134] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isDone : true
2021-07-21 00:54:58.005 [INFO ] c.i.n.n.listener.ConnectFutureListener [StringChannelStatus : 135] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isCancelled : false
2021-07-21 00:54:58.006 [INFO ] c.i.n.n.listener.ConnectFutureListener [StringChannelStatus : 136] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isCancellable: false
2021-07-21 00:54:58.006 [INFO ] c.i.n.n.listener.ConnectFutureListener [StringChannelStatus : 137] | --- ID : 16 | IP : ***.**.**.*** | ChannelFuture isVoid : false
2021-07-21 00:54:58.006 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 53] | channel is Active : true
2021-07-21 00:54:58.006 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 54] | channel is Open : true
2021-07-21 00:54:58.006 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 55] | channel is Writable : true
2021-07-21 00:54:58.006 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 56] | channel is Registered : true
2021-07-21 00:54:58.007 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 58] | --- ID : 16 연결 시도
2021-07-21 00:54:58.007 [INFO ] c.i.n.n.listener.ConnectFutureListener [operationComplete : 65] | --- ID : 16 | channelFuture is not null | channelFuture toString : AbstractBootstrap$PendingRegistrationPromise@9f4f7f9(success)
2021-07-21 00:54:58.007 [ERROR] c.i.n.n.listener.ConnectFutureListener [operationComplete : 112] | 접속시 예외처리. 접속 예외 | NullPointerException | Exception Log : java.lang.NullPointerException
at com.company.util.LogHelper.getPrintStackTrace(LogHelper.java:11)
at com.company.network.netty.listener.ConnectFutureListener.operationComplete(ConnectFutureListener.java:83)
at com.company.network.netty.listener.ConnectFutureListener.operationComplete(ConnectFutureListener.java:1)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485)
at io.netty.util.concurrent.DefaultPromise.access$000(DefaultPromise.java:33)
at io.netty.util.concurrent.DefaultPromise$1.run(DefaultPromise.java:435)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:745)
2021-07-21 00:55:00.001 [INFO ] com.company.job.---CheckLastMessageTime [executeInternal : 45] | --- connection status [ ID : 16 | Last Message Date : 20210721005457 | Now Message Date : 20210721005500 ]
2021-07-21 00:55:00.002 [INFO ] com.company.job.---CheckLastMessageTime [executeInternal : 58] | --- connection status [ ID : 16 | nowTime : 1626796500000 | LastMessageTiem : 1626796497000 | diff seconds : 3 ]
2021-07-21 00:55:00.007 [INFO ] com.company.service.---_------_STATUS [update : 75] | vo --- ID : 16 | vo --- ----_----_--: PC000032 | ----- vo --- parking STATUS : 만차
2021-07-21 00:55:00.019 [INFO ] com.company.job.---ToSendPacketJob [executeInternal : 51] | send to --- the packet Job Start...
2021-07-21 00:55:00.019 [INFO ] com.company.job.---ToSendPacketJob [executeInternal : 57] | SEND MESSAGE JOB : TO --- [ ID : 16 | Message : ----- | channel : [id: 0x7a7af8e4, L:/***.**.**.*** - R:/***.**.**.***] ]
2021-07-21 00:55:00.019 [INFO ] com.company.job.---ToSendPacketJob [executeInternal : 58] | channel isActive status : true
2021-07-21 00:55:00.019 [INFO ] com.company.job.---ToSendPacketJob [executeInternal : 59] | channel isOpen status : true
2021-07-21 00:55:00.020 [INFO ] com.company.job.---ToSendPacketJob [executeInternal : 60] | channel isRegistered status : true
2021-07-21 00:55:00.020 [INFO ] com.company.job.---ToSendPacketJob [executeInternal : 61] | channel isWritable status : true
2021-07-21 00:55:00.021 [INFO ] com.company.job.---ToSendPacketJob [executeInternal : 84] | send to --- the packet Job Done...
'Programming > TCP IP' 카테고리의 다른 글
포트상태 대략정리 (1) | 2021.12.21 |
---|---|
wireshark capture 안뜸 오류 (0) | 2021.08.24 |
자바 TCP/IP 통신 (Netty, 네티) - 3 송신 (0) | 2021.05.21 |
자바 TCP/IP 통신 (Netty, 네티) - 2 수신 (0) | 2021.05.11 |
자바 TCP/IP 통신 (Netty, 네티) (0) | 2021.05.11 |
댓글