현재 운영중이 어플리케니션에서 간혈적으로 에러가 나기 시작했다.

public static void sendMessage() throws Exception {

    	

    	// Read commands from the stdin.

	ChannelFuture lastWriteFuture = null;

        

	try {

	        Map<String, Object> sendMessage = new Hashtable<String, Object>();



	        //Key

	        SimpleDateFormat keyFormat = new SimpleDateFormat("yyyyMMddHHmmss");

	        sendMessage.put("key",   keyFormat.format(nowDate));



	        //메시지

	        sendMessage.put("MESSAGE",   		"OK");

	    

		List<OrderDto> orderList = null;		

		orderList = saleClientService.selectSaleList();

	

		logger.info("SEND ORDER_SIZE=" + orderList.size());

		logger.info("SEND MESSAGE=" + sendMessage.toString());

			        

	        // Sends the received line to the server.

	        lastWriteFuture = channel.writeAndFlush(sendMessage);

	        

	        // Wait until all messages are flushed before closing the channel.

	        if (lastWriteFuture != null) {

	            lastWriteFuture.sync();

	        }

	} catch(Exception e) {	

        	logger.error("**********************************************************");

                logger.error("sendMessage Error - " + e.getMessage());

                

                for(StackTraceElement stackTrace : e.getStackTrace()) {

            	     logger.error(stackTrace.toString());

                }

    		logger.error("**********************************************************");

        }

    }

 

에러나는 소스 부분은 위와 같은데...

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[INFO   ](ObjectEchoClient.java:183)-SEND ORDER_SIZE=1
[INFO   ](ObjectEchoClient.java:186)-SEND MESSAGE={MESSAGE=OK, SEND_ORDER_DATA=[OrderDto@1c2f025], key=20200531215802}
[ERROR  ](ObjectEchoClient.java:197)-**********************************************************
[ERROR  ](ObjectEchoClient.java:198)-sendMessage Error - null
[ERROR  ](ObjectEchoClient.java:202)-**********************************************************
[INFO   ](ObjectEchoClient.java:270)-Disconnect Server
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

e.getMessage() 를 로그를 찍어도.. Null 만 찍히는 것이다..

위에 Null 만 봐서는.. 에러 로그를 확인이 불가능...

 

전에 포스팅한 디버그 로그 옵션을 주고 3일동안 돌려보았다.

3일동안 로그를 확인해본 결과

간혈적으로 에러 났던 부분이 드디어 로그에 찍혔다.

 

[21:01:27][DEBUG  ](Slf4JLogger.java:71)-[id: 0xfecbf461, /192.168.XXX.XXX:4281 => /xxx.000.xxx.000:5002] FLUSH
[21:01:27][INFO   ](LoggingHandler.java:324)-[id: 0xfecbf461, /192.168.XXX.XXX:4281 => /xxx.000.xxx.000:5002] FLUSH
[21:01:36][DEBUG  ](Slf4JLogger.java:71)-[id: 0xfecbf461, /192.168.XXX.XXX:4281 => /xxx.000.xxx.000:5002] USER_EVENT: SslHandshakeCompletionEvent(javax.net.ssl.SSLException: handshake timed out)
[21:01:36][ERROR  ](LoggingHandler.java:248)-[id: 0xfecbf461, /192.168.XXX.XXX:4281 => /xxx.000.xxx.000:5002] USER_EVENT: SslHandshakeCompletionEvent(javax.net.ssl.SSLException: handshake timed out)
[21:01:36][ERROR  ](ObjectEchoClient.java:201)-**********************************************************
[21:01:36][DEBUG  ](Slf4JLogger.java:71)-[id: 0xfecbf461, /192.168.XXX.XXX:4281 :> /xxx.000.xxx.000:5002] INACTIVE
[21:01:36][ERROR  ](ObjectEchoClient.java:202)-sendMessage Error - null
[21:01:36][ERROR  ](ObjectEchoClient.java:206)-**********************************************************
[21:01:36][INFO   ](ObjectEchoClient.java:276)-Disconnect Server

 

 SslHandshakeCompletionEvent(javax.net.ssl.SSLException: handshake timed out) 에러가 난것..

 

 handshake timed out 에러라...

 

현재 Netty Server 쪽에는

 

SO_BACKLOG 및 SO_KEEPALIVE  옵션 설정이 안되어 있다...

두개의 옵션으로 해결이 될지는 모르겠지만...

 

옵션을 추가하여 테스트를 해보고 그 결과를 다시 포스트 하겠다.

 


 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기