【问题标题】:DB2 jdbc connection error Connection refused. ERRORCODE=-4499, SQLSTATE=08001DB2 jdbc 连接错误连接被拒绝。错误代码=-4499,SQLSTATE=08001
【发布时间】: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 中应该有一些内容。如果不是,则仅是网络。
  • 您可以尝试完全禁用防火墙吗?

标签: java jdbc db2


【解决方案1】:

我也遇到了同样的问题...它是由 IPV6 引起的... URL 连接指向 localhost,解析为 ::1(localhost 的 IPV6 地址),并且 DB2 服务器没有列出 IPV6 协议。

我通过修改 c:\windows\system32\driver\etc\host 文件来解决:我取消注释 127.0.0.1 locahost 行以强制 locahost 的 ipv4 解析名称...并且它有效。

我希望这会有所帮助。 (对不起我的英语)

【讨论】:

    【解决方案2】:

    确实是网络错误。我不完全确定哪个修复是最重要的,但我确保启用了 telnet 并在 RHEL 防火墙配置中将 DB2 进程列入白名单。

    【讨论】:

    • Telnet 与此无关。 DB2 进程没有运行。
    • 你的意思是测试端口是否开放:telnet IPserver DB2port, telnet 192.168.0.1 50000
    猜你喜欢
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多