Java로 데이터베이스 서버에 대한 온라인/오프라인 상태를 확인하고 싶습니다.Java로 데이터베이스 서버 상태 확인
포트를 통한 소켓 연결로이를 확인할 수 있습니까? 로그인 및 데이터베이스 시스템 정보를 알 수 없기 때문에 jdbc와의 데이터베이스 연결을 원합니다.
Java로 데이터베이스 서버에 대한 온라인/오프라인 상태를 확인하고 싶습니다.Java로 데이터베이스 서버 상태 확인
포트를 통한 소켓 연결로이를 확인할 수 있습니까? 로그인 및 데이터베이스 시스템 정보를 알 수 없기 때문에 jdbc와의 데이터베이스 연결을 원합니다.
는 다음을 시도 할 수 있습니다 : 서버가 다운 인 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
}
예, 당신은, 당신, 데이타베이스 서버의 주소와 포트에 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;
}
위의 접근 방식은 정말 경우에 타이밍을 고려하지 않는다 (위해 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
텔넷을 사용한다. –
이 질문의 범위가 너무 넓어서 여기에서 다루는 방법을 모르겠습니다. –
@LuiggiMendoza 최근 사람들은 가까운 질문에 햄을 먹는 것처럼 보입니다. –