局域网控制中心连接AS400 DB2数据库问题

无法连接,如何解决。

QQ图片20150204121830.png



错误如下:
检测到通信错误。正在使用的通信协议:"TCP/IP"。正在使用的通信
API:"SOCKETS"。检测到错误的位置:"172.16.0.4"。检测到错误的通信功能:"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 错误号。
   *  如果存在 "" 并且包含"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"命令时的输
      出。
   *  远程数据库服务器中的防火墙已阻止建立连接。验证是否已正确地将防火
      墙配置为接受来自客户机的连接请求。
   *  服务器上的 DB2COMM 环境变量未指定客户机使用的通信协议。检查是否已
      经指定了 TCPIP。发出 db2set 命令来了解已经设置的内容。运行命令"
      db2set DB2COMM = TCPIP"以设置值。
   *  服务器上的数据库管理器未启动、未成功启动或者已停止。服务器应返回
      SQL1063N 而不是 SQL5043N。如果您在发出"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 错误和原因的列表并不详尽,通过在 DB2 信息中心中搜索"-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、5UA0G 和 5UA0H
参与10

9 同行回答

李英杰 李英杰 数据库技术专家 烁林软件
首先确定AS400上数据库的监听是不是启动的额,再telnet测试能否到达AS400上数据库的监听端,看报错是TCPIP通信的问题显示全部
首先确定AS400上数据库的监听是不是启动的额,再telnet测试能否到达AS400上数据库的监听端,看报错是TCPIP通信的问题 收起
系统集成 · 2015-02-05
浏览1419
张东焕 张东焕 技术总监 IBM官方授权讲师
后台是AS400,这个是需要DB2 CONNECT产品,开放平台上的企业版中包含DB2 Connect。最好用db2ca图形方式配置,如果用命令行,需要三个命令:db2 catalog tcpip node 。。。。db2 catalog dcs 。。。db2 catalog db 。。。...显示全部
后台是AS400,这个是需要DB2 CONNECT产品,开放平台上的企业版中包含DB2 Connect。最好用db2ca图形方式配置,如果用命令行,需要三个命令:
db2 catalog tcpip node 。。。。
db2 catalog dcs 。。。
db2 catalog db 。。。 收起
IT咨询服务 · 2015-02-04
浏览1427
holyxh holyxh 软件开发工程师 中共
回复 5# freebile    大哥,你真是好人!!!还有站长。。。显示全部
回复 5# freebile


   大哥,你真是好人!!!还有站长。。。 收起
政府机关 · 2015-02-04
浏览1415
holyxh holyxh 软件开发工程师 中共
就是通过ODBC连接的,可是连接不上啊。显示全部
就是通过ODBC连接的,可是连接不上啊。 收起
政府机关 · 2015-02-04
浏览1505
holyxh holyxh 软件开发工程师 中共
回复 5# freebile    对啊,哥,事情就是这样的啊。显示全部
回复 5# freebile


   对啊,哥,事情就是这样的啊。 收起
政府机关 · 2015-02-04
浏览1439
freebile freebile 数据库运维工程师 金融行业
你这个是远程的库,是嘛?  如果你创建了ODBC 数据源,ODBC可以连接,控制中心也是走odbc的啊显示全部
你这个是远程的库,是嘛?  如果你创建了ODBC 数据源,ODBC可以连接,控制中心也是走odbc的啊 收起
金融其它 · 2015-02-04
浏览1480
holyxh holyxh 软件开发工程师 中共
回复 2# freebile     大哥,其他可以连接上,就是控制中心连接不上啊。显示全部
回复 2# freebile


   

QQ图片20150204165056.png



大哥,其他可以连接上,就是控制中心连接不上啊。 收起
政府机关 · 2015-02-04
浏览1518
holyxh holyxh 软件开发工程师 中共
回复 2# freebile    非常感谢,我立即去按操作去看看。显示全部
回复 2# freebile


   非常感谢,我立即去按操作去看看。 收起
政府机关 · 2015-02-04
浏览1432
freebile freebile 数据库运维工程师 金融行业
1.看看端口号有没有配置正确,看一下配置参数svcename跟services文件中配置的db2端口号是否一致,windows默认一般用500002.连接出错首先看看服务器ip 和端口写对没有ip   hostsname如果没错就要看看服务器的db2服务端口对不对。另外对于服务器下面这些也要注意3、...显示全部
1.看看端口号有没有配置正确,看一下配置参数svcename跟services文件中配置的db2端口号是否一致,windows默认一般用50000

2.连接出错首先看看服务器ip 和端口写对没有
ip   hostsname如果没错就要看看服务器的db2服务端口对不对。另外对于服务器下面这些也要注意
3、用命令行看看是否可以连接

检查服务器的配置情况如下:

验证存在的DB2数据库
db2 list db directory
db2 list db directory show detail
验证实例使用的通讯协议,查看DB2COMM变量
db2set -all



要确认服务器是否在监听,可以用netstat -an 来查看端口是否处于LISTEN状态 收起
金融其它 · 2015-02-04
浏览1907

提问者

holyxh
软件开发工程师 中共
评论12

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-02-04
  • 关注会员:1 人
  • 问题浏览:10966
  • 最近回答:2015-02-05
  • X社区推广