보통 Socket에서 대한 ReadTimeout 설절을 하면서 Socket에 대한 Connection 타임아웃을 누락하는 경우가 있습니다.
해당 Socket이 정상적으로 Open 되어 있지 않을때,
Socket connection 타임아웃이 없으면 수초동안 waitting이 걸릴 수 있습니다.
Web Application 내에서라면 WAS에서 사용하는 외부 소켓문제로 인해 Thread가 full되어 서비스 불능이 될 수도 있습니다.
따라서 Socket의 connection에 문제가 있다면 바로 식별 할 수 있도록 connection 타임아웃 이간을 넣어주시기 바랍니다.
연결 대상 69.111.112.159...호스트에 연결할 수 없습니다. 포트 3434: 연결하지 못했습니다. |
이 경우에 소켓 연결 자체에 대한 Timeout 설정을 해서 Application이 소켓 연결을 위한 wait time을 줄여 주어야 합니다.
Socket m_sock=null; try{ int timeout = 500; //Socket connection check. timeout : 0.5sec SocketAddress socketAddress = new InetSocketAddress(sIp, nPort); m_sock = new Socket();
m_sock.connect(socketAddress, timeout); //Socket 연결 자체에 대한 타임아웃 설정} catch (SocketException se) { se.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { try { m_sock.close(); } catch (Exception e) { e.printStackTrace(); } } |
'IT게시판' 카테고리의 다른 글
Web Crawler에 대한 대응방법(Struts) (0) | 2022.12.27 |
---|---|
Jeus EJB Hot deploy (0) | 2022.11.29 |
Spring Boot Maven 빌드시 PKIX path building failed 오류 처리 (0) | 2022.11.29 |
java.util.ConcurrentModificationException 해결방법 (0) | 2022.11.22 |
성능 테스트 (0) | 2022.11.22 |