以编程方式检查java中服务器的可访问性

时间:2013-02-17 07:14:26

标签: java database database-connection

在我的应用程序架构中,我有两个数据库服务器主数据库服务器和辅助数据库服务器(副本服务器)。

在我的java代码中,我正在与DB建立连接以获取一些数据现在我想要的是我将在我的代码中提供两个数据库服务器的IP地址,并将检查哪个数据库服务器是可访问的并且将仅与之连接。但我没有得到如何实现它,一种方法是尝试telnet但不是一个好的选择,因为我想出于某些原因在应用服务器上禁用telnet。

还有其他最好的方法吗?

2 个答案:

答案 0 :(得分:4)

就个人而言,我只是尝试连接(使用标准数据库类)并在连接失败时处理异常。

即使您最初确认连接,也没有任何事情可以防止在该测试与您使用数据库的实际尝试之间发生网络问题。

答案 1 :(得分:2)

您可以尝试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