2016-05-11 75 views
3

JavaでDB2データベースに接続しようとしていますが、エラーをスローしていますが、それは何の問題であるかわかりません。私はdb2jcc.jarを追加しました。ここでは完全なデータベース接続コードを示します。javaを使用してDB2データベース接続を接続する方法は?

public class ConnectionExample { 

    public static void main(String[] args) { 
     String jdbcClassName="com.ibm.db2.jcc.DB2Driver"; 
     String url="jdbc:db2://localhost:50000/TestDb"; 
     String user="user"; 
     String password="[email protected]"; 

     Connection connection = null; 
     try { 
      //Load class into memory 
      Class.forName(jdbcClassName); 
      //Establish connection 
      connection = DriverManager.getConnection(url, user, password); 

     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     }finally{ 
      if(connection!=null){ 
       System.out.println("Connected successfully."); 
       try { 
        connection.close(); 
       } catch (SQLException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 

    } 

} 

上記のコードでDB2データベースに接続しようとしていますが、エラーが発生します。

com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException: [jcc][t4][2043][11550][3.63.123] Exception java.net.ConnectException: Error opening socket to server localhost/127.0.0.1 on port 50,000 with message: Connection refused: connect. ERRORCODE=-4499, SQLSTATE=08001 
    at com.ibm.db2.jcc.am.fd.a(fd.java:321) 
    at com.ibm.db2.jcc.am.fd.a(fd.java:340) 
    at com.ibm.db2.jcc.t4.xb.a(xb.java:433) 
    at com.ibm.db2.jcc.t4.xb.<init>(xb.java:90) 
    at com.ibm.db2.jcc.t4.a.z(a.java:347) 
    at com.ibm.db2.jcc.t4.b.a(b.java:1974) 
    at com.ibm.db2.jcc.am.ib.a(ib.java:691) 
    at com.ibm.db2.jcc.am.ib.<init>(ib.java:644) 
    at com.ibm.db2.jcc.t4.b.<init>(b.java:330) 
    at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:231) 
    at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:197) 
    at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:472) 
    at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:113) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at ConnectionExample.main(ConnectionExample.java:18) 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
    at java.net.PlainSocketImpl.connect(Unknown Source) 
    at java.net.SocksSocketImpl.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at com.ibm.db2.jcc.t4.x.run(x.java:38) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.ibm.db2.jcc.t4.xb.a(xb.java:419) 
    ... 13 more 

希望誰かが解決策を見つけるのに役立ちます。おかげ

+0

あなたはdb2jcc4.jarをしてみたのですか? –

+1

エラーメッセージは、(DB2)サーバーがポート50000のlocalhost上で実行されていないと言っています。接続URLを変更する必要があるかもしれませんか? – Lolo

+0

@NicolasFilotto私が共有していたリンクがうまく動作していなかったと思います。私はdb2jccで試してみませんでした。 –

答えて

0

原因

この問題の原因としては、TCP/IPが正しくお使いのDB2データベース・サーバー上で有効になっていないことです。

問題を解決

TCP/IP接続を開始するために、DB2コマンド・ウィンドウからdb2set DB2COMMコマンドを使用:

db2set DB2COMM=protocol_names 

例えば、の接続マネージャーを開始するために、データベース・マネージャーを設定しますTCP/IP通信プロトコルの場合は、次のコマンドを入力します。

db2set DB2COMM=tcpip 
db2stop 
db2start 

ソース:https://www-304.ibm.com/support/docview.wss?uid=swg21403644

+0

残念ながら、Db2のものが新しくなって以来、Nicolasは明確ではありません。コードで私を説明できますか? –

+0

同じエラーが出ても、db2jcc4.jarを使ってみました。Nicolas –

+0

だから私はそういうコマンドをDB2ウィンドウで実行したいのですが。 –

1

実際にポート50000が開いていないため、変更後にエラーが発生して51020のポートが正常に動作し、データベースと接続します。

String url="jdbc:db2://localhost:51020/TestDb"; 

おかげ

関連する問題