1

私のアプリケーション アーキテクチャでは、プライマリ db サーバーとセカンダリ db サーバー (レプリカ サーバー) の 2 つのデータベース サーバーを使用しています。

私のJavaコードでは、DBと接続してデータを取得しています。コードで両方のDBサーバーのIPアドレスを指定し、どのDBサーバーが到達可能かを確認し、それにのみ接続します。しかし、それを実装する方法がわかりません.1つの方法はtelnetを試すことですが、何らかの理由でアプリケーションサーバーでtelnetを無効にしたいので、良いオプションではありません.

これを行うための他の最良の方法はありますか?

4

2 に答える 2

4

個人的には、(標準のデータベースクラスを使用して)接続を試行し、接続が失敗した場合に例外を処理します。

最初に接続を確認したとしても、そのテストと実際のデータベースの使用の試みの間にネットワークの問題が発生するのを防ぐことはできません。

于 2013-02-17T07:21:52.607 に答える
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 プログラムの例を参照してください。

于 2013-02-17T07:19:20.067 に答える