【发布时间】:2015-11-24 04:46:34
【问题描述】:
我有一个新的 DB2 服务器(v10.5.0.3),我可以在本地连接到数据库。
尝试使用 JDBC 从远程服务器连接时,我收到“连接被拒绝。ERRORCODE=-4499, SQLSTATE=08001”错误。根据https://www-304.ibm.com/support/docview.wss?uid=swg21403644 此处找到的信息,我已经确认
[db2inst1@db2 ~]$ db2set -all
[i] DB2COMM=TCPIP
[i] DB2AUTOSTART=YES
[g] DB2SYSTEM=db2.xxxx.com
[g] DB2INSTDEF=db2inst1
[g] DB2ADMINSERVER=xxxxxx
和
[db2inst1@db2 ~]$ 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。我的想法已经用完了,非常感谢任何帮助。
【问题讨论】:
-
这是网络错误,而不是 DB2。在服务器上使用
netstat -ap | grep db2sysc或类似名称来验证实例是否确实在侦听您认为的端口,并在客户端上使用telnet serverhost 50001以确认您可以连接。 -
我不排除网络问题,但我仍然很难过。 netstat 显示 db2 在 50001 上侦听,并且 telnet dbserver 50001 导致 Connection Refused 错误,即使来自本地 dbserver。两台服务器都在同一个子网上,并且都在防火墙上打开了端口 50001。似乎 db2 拒绝连接。
-
如果 DB2 拒绝连接,则 db2diag.log 中应该有一些内容。如果不是,则仅是网络。
-
您可以尝试完全禁用防火墙吗?