2014-07-15 3 views
2

Java로 데이터베이스 서버에 대한 온라인/오프라인 상태를 확인하고 싶습니다.Java로 데이터베이스 서버 상태 확인

포트를 통한 소켓 연결로이를 확인할 수 있습니까? 로그인 및 데이터베이스 시스템 정보를 알 수 없기 때문에 jdbc와의 데이터베이스 연결을 원합니다.

+2

텔넷을 사용한다. –

+0

이 질문의 범위가 너무 넓어서 여기에서 다루는 방법을 모르겠습니다. –

+0

@LuiggiMendoza 최근 사람들은 가까운 질문에 햄을 먹는 것처럼 보입니다. –

답변

6

는 다음을 시도 할 수 있습니다 : 서버가 다운 인 IOException을받을 경우

try { 
     Socket socket = new Socket("127.0.0.1", port); //Port dependent on your DB/Server 
     // Server is up 
     socket.close(); 
    } 
    catch (IOException e) 
    { 
     // Server is down 
    } 
2

예, 당신은, 당신, 데이타베이스 서버의 주소와 포트에 Socket를 열 수 있습니다. 원격 접근 할 수없는

public boolean isDatabaseOnline(String address, int port) { 
    boolean result; 

    try { 
     Socket socket = new Socket(address, port); 
     socket.close(); 

     result = true; 
    } catch (IOException e) { 
     result = false; 
    } 

    return result; 
} 
0

위의 접근 방식은 정말 경우에 타이밍을 고려하지 않는다 (위해 Postgress 테스트), 합리적인 제한 시간은 기본 값은 20 초입니다 때문에 정의되어야한다!

빈 소켓을 만든 후 socket.connect 메서드를 사용하여 시간 제한을 지정할 수 있습니다.

SocketFactory sf = SocketFactory.getDefault(); 

try (Socket socket = sf.createSocket()) { 
    socket.connect(new InetSocketAddress(ipAdder, port), timeoutInMillis); 
    logger.info("database is up"); 
} catch (IOException e) { 
    logger.info("database is down"); 
} 

예는 상기 서버 try with resources

관련 문제