DB2 Connect 常见问题

DB2 Connect 常见问题
本主题列示使用 DB2 Connect™ 时遇到的常见的连接问题症状。在每种情况下,都为您提供:
消息号和与该消息相关联的返回码(或特定于协议的返回码)的组合。每个消息和返回码组合都具有独立的标题,这些标题是先按消息号,再按返回码来排序的。
症状,通常采用样本消息列表的格式。
建议的解决方案,指示错误的可能原因。在某些情况下,可能会提供多种建议的解决方案。
SQL0965 或 SQL0969
症状
可能会从 DB2® IBM® i 版、DB2 z/OS® 版和 DB2 服务器 VM 和 VSE 版发出消息 SQL0965 和 SQL0969 及大量不同的返回码。
当您遇到任何其中一个消息时,应该在发出该消息的数据库服务器产品的文档中查找原始 SQL 代码。

解决方案
不能转换从 IBM 大型机数据库接收的 SQL 代码。根据错误代码来更正该问题,然后重新提交失败的命令。
SQL5043N
症状
未能成功启动对一个或多个通信协议的支持。但是,已成功启动了核心数据库管理器功能。
DB2 Connect 服务器上可能未启动 TCP/IP 协议。先前可能已经有成功的客户机连接。

如果 diaglevel = 4,那么 db2diag 日志文件可能包含类似的条目,例如:
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”正被另一进程使用。
解决方案
此警告是一种症状,它表示充当远程客户机的服务器的 DB2 Connect 在处理一个或多个客户机通信协议时遇到问题。这些协议可以是 TCP/IP 和其他协议,消息通常会指出为 DB2 Connect 定义的某个通信协议未正确配置。
原因通常是未定义 DB2COMM 概要文件变量,或者该变量未正确定义。该问题通常是 DB2COMM 变量与数据库管理器配置中定义的名称(例如,svcename 或 nname)之间不匹配的结果。

一种可能的情况是先前有成功的连接,然后得到 SQL5043 错误消息,但未更改任何配置。使用 TCP/IP 协议时,当远程系统因为某些原因而异常终止了连接,就可能会发生这种情况。发生这种情况时,客户机上可能仍然显示连接存在,通过发出下面所显示的命令,就可复原连接,而无须进一步的操作。

与 DB2 Connect 服务器相连接的某个客户机很有可能在 TCP/IP 端口上仍有句柄。在与 DB2 Connect 服务器相连接的每一台客户机上,输入下列命令:
db2 terminate db2stop
SQL30020
症状
SQL30020N 执行失败,原因是“分布式协议错误”,该错误将影响后续命令和 SQL 语句的成功执行。
解决方案
遇到此错误时,应该与服务中心联系。与服务中心联系之前请先运行 db2support 命令。
SQL30060
症状
SQL30060N "<authorization-ID>" 没有执行操作 "<operation>" 的特权。
解决方案
连接至 DB2 z/OS 版时,未正确更新通信数据库(CDB)表。
SQL30061
症状
连接至错误的 IBM 大型机数据库服务器位置 - 找不到目标数据库。
解决方案
可能在 DCS 目录条目中指定了错误的服务器数据库名称。当发生此情况时,将对应用程序返回 SQLCODE -30061。
检查 DB2 节点、数据库和 DCS 目录条目。DCS 目录条目中的目标数据库名称字段必须与基于平台的数据库名称相对应。例如,对于 DB2 z/OS 版数据库,要使用的名称应该与“引导数据集”(BSDS)“LOCATION=locname”字段中的名称相同,当启动了“分布式数据设施”(DDF)时,在 DSNL004I 消息(LOCATION=location)中也提供了该名称。

TCP/IP 节点的正确命令是:
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>
带有返回码 79 的 SQL30081N
症状
SQL30081N 已检测到通信错误。
所使用的通信协议:“TCP/IP”。
所使用的通信 API:“SOCKETS”。
位置 检测到错误的位置:“”。 错误的
通信功能:
“连接”。特定于协议的错误代码:“79”、“*”和“*”。
SQLSTATE=08001
解决方案
当远程客户机未能与 DB2 Connect 服务器连接时,就可能发生此错误。从 DB2 Connect 服务器连接至 IBM 大型机数据库服务器时,也可能发生此错误。
在 DB2 Connect 服务器上,DB2COMM 概要文件变量可能设置得不正确。检查此变量。例如,当在 AIX® 上运行 DB2 企业服务器版时,命令 db2set db2comm=tcpip 应该出现在 sqllib/db2profile 中。
IBM 数据服务器客户机 中指定的 TCP/IP 服务名称和端口号可能与 DB2 Connect 服务器中指定的不匹配。在以上两种机器中验证 TCP/IP services 文件中的各个条目。
检查在 DB2 Connect 服务器上是否启动了 DB2。使用以下命令将“数据库管理器配置”diaglevel 设置为 4:
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”协议支持已成功启动。
带有特定于协议的错误代码 10032 的 SQL30081N
症状
SQL30081N 已检测到通信错误。
所使用的通信协议:“TCP/IP”。
所使用的通信 API:“SOCKETS”。
位置 检测到错误的位置:“9.21.85.159”。 检测到
错误的通信功能:
“发送”。特定于协议的错误代码:“10032”、"*", "*".
SQLSTATE=08001
解决方案
当试图与 TCP/IP 通信已经发生故障的机器断开连接时,可能会接收到此错误消息。用 TCP/IP 子系统更正该问题。
在大多数机器上,只须对机器重新启动 TCP/IP 协议就可以更正该问题。有时可能需要重新启动整个机器。

连接(CONNECT)期间出现 SQL30082 RC=24
症状
SQLCODE -30082 提供的用户名或密码不正确。
解决方案
确保在 CONNECT 语句上提供了正确的密码(必要时)。未提供要发送到目标服务器数据库的密码。必须将密码从 IBM 数据服务器客户机发送到目标服务器数据库中。在某些平台上,例如 AIX,仅当密码是在 CONNECT 语句中提供的时候,才能获得该密码。
概念主题
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值