os:winxp
versin:9.5
前提:
(1)通过clp中用db2icrt创建了实例aaa
(2)通过clp,在实例aaa下创建了数据库testdb和testdb2
(3)通过clp,在数据库testdb中创建了表test1
(4)此时连接数据库,访问表test1,都没有问题。
(5)在控制中心中,添加了实例aaa,使之在控制中心实例节点中显示
(6)在控制中心中,在实例aaa节点想要添加数据库
问题:
问题处在第(6)步,前面的皆已经成功。
添加数据库时,选“发现”,出现如下错误窗口:
SQL30081N 检测到通信错误。正在使用的通信协议:"TCP/IP"。正在使用的通信 API:"SOCKETS"。检测到错误的位置:"192.168.1.101"。检测到错误的通信功能:"connect"。特定于协议的错误代码:"10061"、"*" 和 "*"。 SQLSTATE=08001
说明:
通信子系统检测到错误。
以下是对标记值的描述:
,
使用的通信协议以及用来唯一标识检测到错误的节点的信息。如果出错
时得不到位置信息,那么表示未填充 标记。有效标记值是:
* 协议为 TCP/IP;位置是 IPv4 或 IPv6 地址。
* 协议是 APPC;位置是标准 LU 名称(networkID.LUname)。
* 协议是 MQ;位置是 MQ 队列名称。
* 协议是 SOAP、SSL、SOCKS 和 HTTP;位置是采用点分表示法的因特
网地址。
用来调用上述协议服务的应用程序编程接口。有效标记值是:SOCKETS
、SOCKS、CPI-C、MQI-CLIENT、GSKit 和 HTTP。
返回错误代码的通信子系统功能的名称。
如果 是 TCP/IP:
* 原因码 、 和 表示:
* 如果存在 ,那么它将包含由 TCP/IP 功能返回的 errno 值。在
Windows 操作系统上,这是 WSA errno。
* 如果存在 ,它将包含由 TCP/IP 名称解析功能返回的 h_errno 值。
在 Windows 操作系统上,这是 WSA errno。
* 如果存在 并且包含"0",那么表示远程端已终止连接。如果在客户
机上接收到该错误,那么远程端可能是一个服务器或网关。如果在网关上
接收到该错误,那么远程端可能是一个客户机或服务器。
* 如果 = TCP/IP,且 =*、=* 和 =0,那么可能的原因
是:
* 服务器上的数据库代理程序被系统管理员强制关闭。
* 由于已达到系统上的内存限制,因此数据库代理程序未能在服务器上启动。
* 连接可能已被 TCP/IP 级别的远程服务器关闭。
* 由于关键数据库管理器进程异常终止,因此服务器上的数据库代理程序终
止。
* 在 Windows 操作系统上,如果 = TCP/IP、 = WSAStartup 且
= 0,那么 包含 DB2 请求的"Windows 套接字规范"版本级别,而
包含"Windows 套接字"DLL 支持的"Windows 套接字规范"版本级别。原
因:版本级别不匹配。
* 如果 = TCP/IP、 = connect 且 = ECONNREFUSED/
WSAECONNREFUSED、AIX (79)、Windows (10061)、linux (111)、SUN (146) 和
HP (239),那么尝试连接时会被拒绝。可能的原因是:
* 未在客户机上正确编目远程数据库服务器。在客户机/网关/服务器方案中
,应确保在网关上正确编目了主机项。请参阅《快速入门》指南以获取帮
助。
* 尚未使用正确的通信参数来正确配置服务器上的数据库管理器配置文件。
检查是否使用 TCP/IP 服务名称或端口号正确配置了 svcename 以及端口
号是否是唯一的。如果已在服务器上更新了数据库管理器配置参数,那么
必须停止并重新启动数据库管理器,以使更改生效。在服务器和客户机上
指定的 TCP/IP 服务名称或端口号可能不匹配。通过检查 services 文件
来确保服务名称映射至正确的端口号。可以通过读取 services 文件或者
检查"netstat -a"的输出来检查 services 文件。
* 远程数据库服务器中的防火墙已阻止建立连接。验证是否已正确地将防火
墙配置为接受来自客户机的连接请求。
* 服务器上的 DB2COMM 环境变量未指定客户机使用的通信协议。检查是否已
经指定了 TCPIP。发出 db2set 命令来了解已经设置的内容。发出 db2set
DB2COMM = TCPIP 来设置该值。
* 服务器上的数据库管理器未启动、未成功启动或者已停止。服务器应返回
SQL1063,而不是 SQL5043。如果您在发出 db2start 之前使用 db2 update
dbm cfg using diaglevel 4 来将数据库管理器配置参数 diaglevel 设置
为 4,那么管理通知日志将提供有关已成功启动了哪些协议的详细信息。
检查管理通知日志。
* 此时,服务器可能太繁忙而无法处理入局连接引入的大量信息。
* 网络故障,请与网络管理员联系。可以使用协议测试程序 pctt 进行测试
,从而验证这不是 DB2 造成的问题。
* 如果 = TCP/IP、 = connect 且 = ETIMEDOUT/
WSAETIMEDOUT、AIX (78)、Windows (10060)、linux (110)、SUN (145) 和 HP
(238),那么尝试连接时在真正建立连接之前就发生超时。可能的原因是:
* 在客户机和/或网关上的节点目录的"主机名"字段中编目了不正确的主机名
或 IP 地址。
* 网络速度太慢,或者服务器可能太繁忙而无法在合理时间量以内对连接请
求作出响应;您可能需要调整系统 TCP 超时值和/或
DB2TCP_CLIENT_CONTIMEOUT 值。
* 如果 = TCP/IP、 = recv 且 = ECONNRESET/
WSAECONNRESET、AIX (73)、Windows (10054)、linux (104)、SUN (131) 和
HP (232),那么远程端会通过执行"硬"关闭或"异常终止"关闭来将连接复位。
可能的原因是:
* 连接可能已被 TCP/IP 级别的远程网关或服务器关闭(例如,防火墙问题
、电源故障和网络故障导致连接被关闭)。
* 启用了客户端连接池,但是未处理连接故障。如果在连接至数据库时产生
故障并且启用了连接池,那么编写应用程序,然后再次尝试进行连接。
* 可能是主机上的线程超时导致的。检查主机上的系统日志中是否存在
IDTHTOIN 消息。如果可能的话,应调整设置。如果无法调整设置,那么禁
用网关上的连接池,或者确保正确关闭了所有对象(例如,应用程序完成
操作之后的 WITH HOLD 游标)。
* 服务器上的数据库代理程序被数据库管理员强制关闭。
* 由于关键数据库管理器进程异常终止,因此服务器上的数据库代理程序终
止。
* 如果 = TCP/IP、 = recv 且 = ETIMEDOUT/WSAETIMEDOUT
、AIX (78)、Windows (10060)、linux (110)、SUN (145) 和 HP (238),那
么是因为远程系统未能作出响应而导致连接被断开。可能的原因是:
* 因为应用程序设置了"查询超时"值或者存在明确的取消请求,所以从 CLI
应用程序中调用了 SQLCancel()。调整由应用程序设置的"查询超时"值。
如果无法调整该值,那么调整 db2cli.ini 文件中的
QueryTimeoutInterval 设置。在 db2cli.ini 文件中使用
QueryTimeoutInterval=0(无超时)来测试 QueryTimeout 是否是造成应
用程序故障的原因。预计在此方案中现有连接将会发生故障。
* 网络速度太慢,或者服务器可能太繁忙而无法在合理时间量以内对 recv
请求作出响应;您可能需要调整系统 TCP recv 超时值。
* 如果 = TCP/IP、 = selectForConnectTimeout 且 =
EINPROGRESS/0、AIX (55)、Windows (0)、linux (115)、SUN (150) 和 HP
(245),那么连接请求由于超时而无法成功完成。可能的原因是:
* 系统连接超时,或者 DB2TCP_CLIENT_CONTIMEOUT 设置的超时值导致发生
超时。调整这些值之后再试。
* 如果 = TCP/IP、 = selectForRecvTimeout 且 不相关
,那么 recv 请求由于超时而无法成功完成。可能的原因是:
* 系统 recv 超时,或者 DB2TCP_CLIENT_RCVTIMEOUT 设置的超时值导致发
生超时。调整这些值之后再试。
以上描述的 TCP/IP 错误和原因的列表并不详尽,通过在信息中心(http://
publib.boulder.ibm.com/infocenter/db2luw/v9)中搜索诸如"-30081 错误"之
类的短语来获取有关特定 TCP/IP 通信错误代码的更多信息。
如果 是 APPC
* 包含来自 CPI-C 函数的返回码。
* (如果存在)包含来自 CPI-C 函数调用的全局 errno 值。
* 不适用。
如果 是 MQ
* 包含函数完成代码,1 表示警告,2 表示错误。
* <1rc2> 包含特定于 MQ 的错误代码。
* 不用于 MQ。
如果 是 SOAP,那么 包含来自 SOAP 通信函数的返回码。
如果 是 SSL,那么 包含来自安全套接字层(GSKit)的返回码。
如果 是 SOCKS
* 包含来自 SOCKS 代理服务器的返回码。
* 包含版本(4 或 5)的协议。
* 包含所使用的认证方法(SOCKS V5)。
如果 是 HTTP,那么 包含来自远程 HTTP Server 的 HTTP 返回码
。
用户响应:
更正由返回的原因码和标记值(如上所述)共同指示的问题。
sqlcode: -30081
sqlstate: 08001
请问,遇到此问题该如何处理。数据库和操作系统都已经重启过。目前在clp中访问该实例下的数据库和表都正常,就是无法添加到控制中心中。请高手赐教!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14951038/viewspace-589067/,如需转载,请注明出处,否则将追究法律责任。