免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 38209 | 回复: 2
打印 上一主题 下一主题

DB2 关于 SQL30081N 检测到通信错误问题求助 [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
1 [报告]
发表于 2006-12-13 17:05 |显示全部楼层
DB2COMM 设了没?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2006-12-14 10:16 |显示全部楼层
检查db2diag.log

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2006-12-14 11:59 |显示全部楼层
学会用GOOGLE吧



为什么客户端连服务器总是报错SQL30081N错
                             
作者:cq_1390263 发表日期:2006-04-07 12:48


  内容导航: 第1页  上一页 1 下一页  
  

    【IT168 数据库应用】标题:为什么客户端连服务器总是报错SQL30081N错?


--------------------------------------------------------------------------------
作者:cq_1390263    时间:06-01-10 10:38

为什么所有客户端连服务器总是报错SQL30081N错???


--------------------------------------------------------------------------------
作者:cq_1390263    时间:06-01-10 16:26

问题已经基本搞清!
在网上找了很久,觉得这份帖子比较精辟。

http://beta.xmu.cn/modules.php?op=m...article&sid=111

当你遇到无法连接DB2的问题时,首先要了解整个层次模型,多层模型将会涉及一个或多个中间层,会给故障定位增加难度。另外,诸如操作系统、DB2版本及补丁级别、通讯协议也是要了解的。

一个基本的故障解决方法是:如果是客户端上的应用遇到问题,那么用DB2命令行来测试是否可以连接到DB2服务器。如果是三层结构,那么直接在中间层上尝试连接DB2服务器。


通常,有关通讯的故障会出现以下信息:

SQL30081N A communication error has been detected. Communication
protocol being used: "TCP/IP". Communication API being used: "SOCKETS".
Location where the error was detected: "". Communication function
detecting the error: "connect". Protocol specific error code(s):
"10061", "*", "*". SQLSTATE=08001


如果问题是持续的,那会比较好解决,有可能是配置的问题,或者网络通讯。如果问题是间断性的,那可能涉及网络故障、连接池中代理太少。

如果你是远程客户端遇到问题,那么先测试服务器本地是否可以连到DB2 Server.如果还是无法连接,那么查看DB2服务器是否正常工作。如果可以连接,说明网络通讯故障,或者远程客户端配置有问题。

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


验证存在的DB2数据库
db2 list db directory
db2 list db directory show detail
验证实例使用的通讯协议,查看DB2COMM变量
db2set -all
查看数据库管理器的配置,查看SVCENAME(特指tcpip协议)
db2 get dbm cfg
查看/etc/services中,有无与上面对应SVCENAME的端口,例如:
db2cDB2 50000/tcp

要确认服务器是否在监听,可以用netstat -an 来查看端口是否处于LISTEN状态


检查客户端的配置如下:


验证远程服务器实例配置
db2 list node directory
db2 list node directory show detail
ping hostname来验证通讯
使用telnet hostname port来验证是否能连到实例


另外,DB2提供了一个PCT工具来专门解决有关通讯的故障,如果上面的方法还没有解决你的问题,那么请参阅相关资料来使用它。


--------------------------------------------------------------------------------
作者:cq_1390263    时间:06-01-13 09:17

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

验证存在的DB2数据库
db2 list db directory
db2 list db directory show detail
验证实例使用的通讯协议,查看DB2COMM变量
db2set -all
查看数据库管理器的配置,查看SVCENAME(特指tcpip协议)
db2 get dbm cfg
查看/etc/services中,有无与上面对应SVCENAME的端口,例如:
db2cDB2 50000/tcp

要确认服务器是否在监听,可以用netstat -an 来查看端口是否处于LISTEN状态

(来源IBM教材)
为远程连接而准备 DB2 服务器

在 DB2 客户机能够连接到数据库以前,必须确保正确设置了服务器端通信。要准备将服务器用于 TCP/IP 和 NetBIOS 连接:

设置 DB2 概要文件注册表 DB2COMM,以使实例支持指定的通信,如下所示:

db2set DB2COMM=TCPIP,NETBIOS

在数据库管理器配置文件中为每个受支持的协议设置必需的信息。
对于 TCP/IP,为每个支持 TCP/IP 的实例分配一个端口号。名为 services 的文件包含在系统上定义的服务及其端口号。该文件的位置取决于平台。例如,在 UNIX 上,它通常被存储在 /etc 中。

由于一个端口号只能被一个服务使用,所以建议将 services 文件用作维护所有服务及其相关端口号列表的中央位置。要把 TCP 端口 50000 保留给名为 db2icdb2 的服务,可将以下行追加到 services 文件:
db2icdb2 50000/tcp

更新数据库管理器配置文件,以便 DB2 将把与服务 db2icdb2 相关的端口号用于您正在使用的实例:

db2 update database manager configuration using svcename db2icdb2

如果选择不使用 services 文件,只需用正确的端口号更新 svcename:

db2 update database manager configuration using svcename 50000

对于 NetBIOS,只需在数据库管理器配置文件中输入 NetBIOS 工作站名称(nname):
db2 update database manager configuration using nname DB2NTSERV

参数 svcename 和 nname 不能联机配置。先停止实例然后重新启动它,以便能够使用新值:

db2stop
db2start
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP