错误告警信息:
-bash-3.00$ db2 connect to rptdb user rptdb using rptdb
SQL30081N A communication error has been detected. Communication protocol
being used: "TCP/IP". Communication API being used: "SOCKETS". Location
where the error was detected: "192.168.2.63". Communication function
detecting the error: "connect". Protocol specific error code(s): "78", "*",
"*". SQLSTATE=08001
分析思路:
1. 数据库连接,非本机的本地数据库,将通过服务/端口进行连接。因此先查看是否存在端口服务:
netstat -an|grep 60051
经查看端口服务没有问题。再查看一下是否为TCPIP的SOCKET连接指定参数,DB2COMM=TCPIP:
db2set -all
2. 此部分没有问题,这说明数据库端口服务存在,无配置问题。可以这样测试:
Telnet 192.168.2.63 60051
发现可以连接并有信息提示,说明存在端口服务。
3. 在非本机连接,同样用TELNET测试
发现无法连接并且没有任何回应。这通常是由于系统级别或网络级别的防火墙阻断导致。所有发送包都不回复就这样表现的。
4. 因测试客户端和此服务器同在192.168的测试网段,据我了解此段内所有服务器通过交换机连接,无防火墙策略设置。
排除网络问题。
5. 系统防火墙通过IPTABLES命令确认是否有策略和是否开启:
#/etc/init.d/iptables status
发现防火墙开启,并有策略:
Chain RH-Firewall-1-INPUT (2 references)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
因此导致连接问题。
关闭防火墙命令:
#/etc/init.d/iptables stop
6. 再次测试,连接通过。
添加新评论0 条评论