2015-08-29 463 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 ...它的工作。

我希望有帮助。 (对不起,我的英文版)