2015-08-29 464 views
1

我有一個新的DB2服務器(v10.5.0.3),我可以很好地連接到本地數據庫。DB2 jdbc連接錯誤連接被拒絕。 ERRORCODE = -4499,SQLSTATE = 08001

當試圖使用JDBC從遠程服務器進行連接時,出現「Connection refused.ERRORCODE = -4499,SQLSTATE = 08001」錯誤。基於這裏找到https://www-304.ibm.com/support/docview.wss?uid=swg21403644信息我已經證實,

[[email protected] ~]$ db2set -all 
[i] DB2COMM=TCPIP 
[i] DB2AUTOSTART=YES 
[g] DB2SYSTEM=db2.xxxx.com 
[g] DB2INSTDEF=db2inst1 
[g] DB2ADMINSERVER=xxxxxx 

[[email protected] ~]$ db2 get database manager configuration | grep -i svce 
TCP/IP Service name       (SVCENAME) = 50001 
SSL service name       (SSL_SVCENAME) = 

這些JDBC連接值

driver=com.ibm.db2.jcc.DB2Driver 
url=jdbc:db2://db2.xxxxx.com:50001/TESTGEN 
username=XXXXXXXX 
password=XXXXXXX 

我已經驗證了這兩個服務器上的防火牆已經打開的端口50000和50001.我已經用完了想法,非常感謝任何幫助。

+0

這是一個網絡錯誤,而不是DB2。使用'netstat -ap | grep db2sysc'或類似的服務器上,以驗證實例是否在您認爲它正在執行的端口上偵聽,並且客戶端上的「telnet serverhost 50001」確認您可以連接。 – mustaccio

+0

我不排除網絡問題,但我仍然難倒。 netstat顯示在50001上監聽的db2,而telnet dbserver 50001導致連接拒絕錯誤,即使是從本地的dbserver也是如此。兩臺服務器都在同一個子網上,並且都在防火牆上打開了端口50001。好像db2拒絕連接。 –

+1

如果DB2拒絕連接,則db2diag.log中應該包含某些內容。如果不是,那麼它就是網絡。 –

回答

0

這確實是一個網絡錯誤。我不完全確定哪個修補程序是最重要的,但我確保telnet已啓用,並且白名單列出了RHEL防火牆配置中的DB2進程。

+0

Telnet與它無關。 DB2進程沒有運行。 – EJP

+0

您的意思是測試端口是否打開:telnet IPserver DB2port,telnet 192.168.0.1 50000 – AngocA

0

我有同樣的麻煩......它是由IPV6造成的...... URL連接指向localhost,解析爲:: 1(本地主機的IPV6地址)和DB2服務器不列出IPV6協議。

我通過修改c:\ windows \ system32 \ driver \ etc \ host文件解決:我取消註釋行127.0.0.1 locahost強制ipv4解析器名稱的locahost ...它的工作。

我希望有幫助。 (對不起,我的英文版)