1

ユーザーが接続したいデータベースのホスト名、ポート、および資格情報を提供するシナリオがあります。ただし、データベースのフレーバーはわかりません。そこで、私がやろうとしているのは、各データベース タイプに接続してみて、接続が成功するかどうかを確認することです。私sqljdbc4.jarはSQLサーバーに使用し、jtds-1.2.7.jarSybase 接続用。それぞれのドライバー URL とクラス名を使用します。sybase データベースに接続しようとすると、以下のコードは最初に SQL サーバーに接続し、次に sybase に接続しようとします。ただし、SQL サーバー接続を試行すると、接続が失敗する前に次のメッセージが繰り返し表示されます。このエラー メッセージを表示しないようにするにはどうすればよいですか? Oracle ドライバーの詳細に対して同じホスト名、ポート、および資格情報を使用すると、すぐにエラーが表示されます。しかし、SQLサーバーの詳細を使用すると、複数回繰り返し試行されます。これはタイムラグを引き起こしているので、それを避けてすぐにエラーを確認したい.

com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
WARNING: ConnectionID:1 Prelogin error: host sybasehost port 4100 Unexpected response type:0

コード:

try{
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        url = "jdbc:sqlserver://sybasehost:4100;databaseName=dbname";
        System.out.println(url);
        java.sql.Connection conn = DriverManager.getConnection(url, "username", "password");
        System.out.println("Connection successful!");
    }
    catch(SQLException se)
    {
        se.printStackTrace();
        System.out.println("Connection unsuccessful");
    }
    catch(ClassNotFoundException cnfe)
    {
        cnfe.printStackTrace();
        System.out.println("Class not found");
    }
    //then try sybase db connection
    try{
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        url = "jdbc:jtds:sybase://sybasehost:4100/dbname";
        System.out.println(url);
        java.sql.Connection conn = DriverManager.getConnection(url, "username", "password");
        System.out.println("Connection successful!");
    }
    catch(SQLException se)
    {
        se.printStackTrace();
        System.out.println("Connection unsuccessful");
    }
    catch(ClassNotFoundException cnfe)
    {
        cnfe.printStackTrace();
        System.out.println("Class not found");
    }
4

0 に答える 0