当您遇到任何其中一个消息时,应该在发出该消息的数据库服务器产品的文档中查找原始 SQL 代码。
DB2 Connect 服务器上可能未启动 TCP/IP 协议。先前可能已经有成功的客户机连接。
2001-05-30-14.09.55.321092 Instance:svtdbm5 Node:000
PID:10296(db2tcpcm) Appid:none
common_communication sqlcctcpconnmgr_child Probe:46
DIA3205E 在 TCP/IP services 文件中配置的且 TCP/IP
服务器支持所需的套接字地址“30090”正被另一进程使用。
原因通常是未定义 DB2COMM 概要文件变量,或者该变量未正确定义。该问题通常是 DB2COMM 变量与数据库管理器配置中定义的名称(例如,svcename 或 nname)之间不匹配的结果。
一种可能的情况是先前有成功的连接,然后得到 SQL5043 错误消息,但未更改任何配置。使用 TCP/IP 协议时,当远程系统因为某一原因而异常终止了连接,就可能会发生这种情况。发生这种情况时,客户机上可能仍然显示连接存在,通过发出下面所显示的命令,就可复原连接,而无须进一步的操作。
db2 terminate db2stop
检查 DB2 节点、数据库和 DCS 目录条目。DCS 目录条目中的目标数据库名称字段必须与基于平台的数据库名称相对应。例如,对于 DB2 for z/OS 数据库,要使用的名称应该与“引导数据集”(BSDS)“LOCATION=locname”字段中的名称相同,当启动了“分布式数据设施”(DDF)时,在 DSNL004I 消息(LOCATION=location)中也提供了该名称。
db2 catalog tcpip node <node_name> remote <host_name_or_address>
server <port_no_or_service_name>
db2 catalog dcs database <local_name> as <real_db_name>
db2 catalog database <local_name> as <alias> at <node node_name>
authentication server
db2 connect to <alias> user <user_name> using <password>
SQL30081N 已检测到通信错误。
所使用的通信协议:“TCP/IP”。
所使用的通信 API:“SOCKETS”。
位置 检测到错误的位置:“”。 错误的
通信功能:
“连接”。特定于协议的错误代码:“79”、“*”和“*”。
SQLSTATE=08001
db2 update dbm cfg using diaglevel 4
在停止并重新启动 DB2 后,查看 db2diag 日志文件,以便检查是否已经启动了
DB2 TCP/IP 通信。您应该看到与下列信息类似的输出: 2001-02-03-12.41.04.861119 Instance:svtdbm2 Node:00
PID:86496(db2sysc) Appid:none
common_communication sqlcctcp_start_listen Probe:80
DIA3000I “TCPIP”协议支持已成功启动。
SQL30081N 已检测到通信错误。
所使用的通信协议:“TCP/IP”。
所使用的通信 API:“SOCKETS”。
位置 检测到错误的位置:“9.21.85.159”。 检测到
错误的通信功能:
“发送”。特定于协议的错误代码:“10032”、 "*", "*".
SQLSTATE=08001
在大多数机器上,只须对机器重新启动 TCP/IP 协议就可以更正该问题。有时可能需要重新启动整个机器。