有一次,在使用DbVisualizer工具连接自己linux虚拟机上的DB2数据库时,报如下错误:

Product:  DbVisualizer Pro 9.1
Build: #2050 (2013/09/08 11:03)
Java VM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.6.0_43
Java Vendor: Sun Microsystems Inc.
OS Name: Windows 7
OS Arch: amd64
OS Version: 6.1 An error occurred while establishing the connection: Long Message:
[jcc][t4][2043][11550][4.15.82] 异常 java.net.ConnectException:打开端口 50,000 上服务器 /192.168.17.88 的套接字时出错,消息为:Connection timed out: connect。 ERRORCODE=-4499, SQLSTATE=08001 Details:
   Type: com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException
   Error Code: -4499
   SQL State: 08001

在百度上搜索"DB2 SQLSTATE=08001",找到如下资料:

这种问题一般的原因:
1.DB2COMM=TCPIP
2.数据库故障
3.端口号被禁用 解决方案: 1.看看端口号有没有配置正确,看一下配置参数svcename跟services文件中配置的db2端口号是否一致,windows一般用50000,unix/linux一般用60000。
2.连接出错首先看看服务器ip 和端口写对没有。
ip如果没错就要看看服务器的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状态。

查看我linux虚拟机上的db2数据库端口设置:

[root@localhost ~]# cat /etc/services | grep db2c_db2inst1
db2c_db2inst1 50000/tcp

端口设置没有问题,在看防火墙设置:

[root@localhost ~]# service iptables status
±í¸ñ£ºfilter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:81
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8080
8 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8081
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8001
10 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8002
11 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT)
num target prot opt source destination [root@localhost ~]#

原来防火墙没有开启50000端口。编辑该文件,在里面添加一条记录:

11   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:50000

添加完之后,重启iptables设置(一定要重启,否则不生效),并再次查看防火墙端口设置信息(注意红色标记部分):

[root@localhost ~]# service iptables restart
清除防火墙规则: [确定]
把 chains 设置为 ACCEPT 策略: filter [确定]
正在卸载 Iiptables 模块 [确定]
应用 iptables 防火墙规则 [确定]
[root@localhost ~]# service iptables status
±í¸ñ£ºfilter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:81
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8080
8 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8081
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8001
10 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8002
11 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:50000
12 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT)
num target prot opt source destination [root@localhost ~]#

再次使用DbVisualizer工具连接数据库,成功!

一次DB2数据库连接失败(SQLSTATE=08001)的解决方法的更多相关文章

  1. php大文件上传失败的原因及解决方法

    为什么上传大文件总是失败,上传小文件就没有问题.关于PHP大文件上传失败的原因及解决方法如下: 第1种情况:文件上传时存放文件的临时目录必须是开启的并且是 PHP 进程所有者用户可写的目录.如果未指定 ...

  2. db2数据库表操作错误SQL0668N Operation not allowed for reason code "1" on table "表". SQLSTATE=57016的解决方法

    错误sql Operation not allowed for reason code "1" on table "MARKET.PURE_USER".. SQ ...

  3. 测者的测试技术手册:Junit执行单元测试用例成功,mvn test却失败的问题和解决方法

    今天遇见了一个奇怪的问题,在IDE中run unit test,全部cases都成功了,但是后来通过mvn test运行case确保错了.在寻求原因的同时也找到了对应的解决方法. Run Unit T ...

  4. 有关PyCharm安装库失败的问题的解决方法

    最近因为要使用Python的缘故,安装了python IDE+pycharm,如此安装的原因是因为Pycharn 并不像anaconda一样拥有相对完整的依赖库和开发包,可以直接运行python,但因 ...

  5. DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法

    这个错误是:表处于"装入暂挂"状态. 经多次尝试 总结方法: 1:reorg table <表>: 假如不好使 则下面方法 2,先前尝试装入(LOAD)此表失败.表的状 ...

  6. PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法

    逆向工程中,有时会出现如下错误 ... [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句 SQLSTATE = 37000 解决方案: 1. ...

  7. DB2事务日志已满的解决方法

    DB2命令终端输入: db2 update db cfg for <dbname> using LOGPRIMARY 50 db2 update db cfg for <dbname ...

  8. SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法

    无法打开用户默认数据库,登录失败,其原因是登录帐户的默认数据库被删除. 解决办法是使用管理员帐户修改此登录帐户的默认数据库. 1.使用管理员帐号登入企业管理器,在“对象资源管理器”中,展开“安全性”— ...

  9. docker swarm 集群进入某节点容器失败的原因及解决方法

    今日在自己的docker swarm 测试环境中,想进入某个节点的容器去查看下,结果进入容器失败,并且报了如下错误信息: [root@worker1 ~]# docker exec -it 9a6f6 ...

随机推荐

  1. Linux 多线程应用中如何编写安全的信号处理函数

    http://blog.163.com/he_junwei/blog/static/1979376462014021105242552/ http://www.ibm.com/developerwor ...

  2. eclipse编辑jsp快捷键保存时特别卡的解决方法

    今天eclipse用着用着的时候,每次编辑jsp页面快捷键保存的时候要等半天才保存好,特别的卡.搞的很蛋疼.上网搜了下有解决办法 Window -> Preference -> Gener ...

  3. C#中调用存储过程:带输入输出参数

    using (SqlConnection conn = new SqlConnection(this.GetConnectionString(this.WMPDBName))) { SqlComman ...

  4. oracle dual 表

    dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录.我们可以用它来做很多事情,如下: 1.查看当前用户,可以在 SQL Plus中执行下面语句 sele ...

  5. (转)eclipse 导入Android 项目 步骤

    1.打开eclipse 2. 点击File--选择-->Import,会出来图片,如图 3.按上面的点击android下的Existing Android...出来画面,如下图   4.点击Br ...

  6. Python存取XML方法简介

    <?xml version="1.0" encoding="utf-8"?> <Schools> <School Name=&qu ...

  7. Pre-Update and Pre-Insert Trigger Examples For Oracle Forms

    See also: Why And When To Use Pre-Update and Pre-Insert Triggers In Oracle FormsPre-Update Fires dur ...

  8. Shifting List Item Values From One List To Another In Oracle Forms

    Suppose you have two T-List items in form and you want  to shift element values from one list to ano ...

  9. CSRF的防御实例(PHP)

    CSRF的防御可以从服务端和客户端两方面着手,防御效果是从服务端着手效果比较好,现在一般的CSRF防御也都在服务端进行. 1.服务端进行CSRF防御 服务端的CSRF方式方法很多样,但总的思想都是一致 ...

  10. factory工厂模式之工厂方法FactoryMethod

    工厂方法(Factory Method) * 工厂方法把不同的产品放在实现了工厂接口的不同工厂类(FactoryAImpl,FactoryBImpl...)里面, * 这样就算其中一个工厂类出了问题, ...