db2连接问题

来源:互联网 发布:乌克兰少年 知乎 编辑:程序博客网 时间:2024/05/21 18:37

错误:连接db2时,server的IP输入本机IP可以连接,输入localhost和127.0.0.1时却不能连接。

方法:

在db2命令行工具中输入db2set DB2COMM=TCPIP命令,才可以使用jdbc type v4来连接

若仍然报错,检查 db2 get dbm cfg | find /i "svcename"  ,检查TCP/IP服务名,与WINDOWS\systemtem32\driver\etc\services  里面的服务是否一致type services | find  "db2",若不一致,使用

 update dbm cfg using SVCENAME serviceName, terminate ,重启db2服务。

   db2 get dbm cfg | find /i "svcename"    结果:  TCP/IP 服务名称         (SVCENAME) = db2c_DB2

  type services | find "db2"  结果:   db2c_DB2        50000/tcp

2014-01-15

今天又遇到新的错误,使用dbvisualizer连接db2时,使用本机的IP可以连接,但是使用localhos 和127.0.0.1 连接,报下面的错误。

An error occurred while establishing the connection:

Long Message:
[jcc][t4][2030][11211][4.15.82] 在对连接的底层 socket、socket input stream 或 socket output stream 执行操作期间
发生通信错误。错误位置:Reply.fill() - insufficient data (-1)。消息:数据不足。 ERRORCODE=-4499, SQLSTATE=08001

Details:
   Type: com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException
   Error Code: -4499
   SQL State: 08001

原因: 50000 的端口号被占用。在命令窗口下面, 查看:netstat -ano | find  "50000",结果为:

TCP    127.0.0.1:50000        0.0.0.0:0              LISTENING       6128

查看tasklist | find "50000" ,发现 有其他程序的进程正在使用50000 端口,所以才导致上面的问题。

解决方法:

方法一、taskkill /pid 6128 ,  6128  是对应的进程的PID, 看情况而定。或者去任务管理器找到对应的PID,直接结束进程。

方法二、将services里面db2的端口号修改为其他的值。重启db2.

 

0 0
原创粉丝点击