在我的应用程序体系结构中,我有两个数据库服务器为主数据库服务器和辅助数据库服务器(Replica服务器)。
在我的Java代码中,我正在与数据库建立连接以获取一些数据,现在我想要的是在代码中提供两个数据库服务器的IP地址,并检查可访问的数据库服务器并仅与之连接。但是我没有得到实现的一种方法,一种方法是尝试telnet,但不是一个好的选择,因为出于某些原因,我想在应用程序服务器上禁用telnet。
还有其他最佳方法吗?
个人,我只是尝试连接(使用标准数据库类)并在连接失败时处理异常。
即使您最初确认了连接性,也无法阻止该测试与您实际尝试使用数据库之间发生网络问题。
您可以尝试对两个主机执行ping操作,然后使用可以响应的主机。这是一个示例程序。
InetAddress address = InetAddress.getByName("172.16.2.0");
// Try to reach the specified address within the timeout
// periode. If during this periode the address cannot be
// reach then the method returns false.
boolean reachable = address.isReachable(10000);
System.out.println("Is host reachable? " + reachable);
有关更详细的程序,请参见Java Ping program example。