DB2:有关"ERRORCODE=-4499, SQLSTATE=08001"详解
Posted RuiKing2010
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2:有关"ERRORCODE=-4499, SQLSTATE=08001"详解相关的知识,希望对你有一定的参考价值。
An error occurred while establishing the connection:Long Message:
[jcc][t4][2030][11211][3.52.95] 在对连接的底层 socket、socket input stream 或 socket output stream 执行操作期间
发生通信错误。错误位置:Reply.fill()。消息:数据不足。 ERRORCODE=-4499, SQLSTATE=08001
背景:正常安装完DB2数据库后,通过dbvisualizer软件访问本地数据库报错(如图一)
图1
图2
解决办法:
一、网上普遍的几种排查错误原因1.DB2关键服务是否正常启动 WIN->SERVICES->检查"DB2-DB2COPY1-DB2"服务是否启动
2.端口号是否冲突 WIN->CMD->键入"netstat -nao",查看是否有其他服务占用50000端口(默认)
3.所访问数据库是否存在 DB2 COMMAND->db2 list db directory
4.检查防火墙设置,是否阻碍连接访问(这一点我不太确定指的是用户防火墙还是DB的防火墙,欢迎指点)
5.GUI问题,可视化图形界面与数据库版本不匹配(这一点我不太同意)
二、如果尝试方法一仍不能解决问题,可以有如下补救措施
前提:通过DB2 COMMAND->db2 list db directory 可见你所期望的数据库
Administrative Tools->Data Sources(ODBC)->User DSN中add一条记录指向DB2-DB2COPY1-DB2->可见DataBase名称为你所期望数据库->Finish。命名该条记录为"SAMPLE"
再次建立连接(如图2),Driver方式改为"JDBC/ODBC Bridge"、Data Source名为刚刚创建的Data Source名称,即"SAMPLE"
通过此办法亦可连接访问本地数据库,作者怀疑是因为DB驱动问题而不能直接Driver方式为"DB2"直接连接
三、偶然遇到的解决办法(我所采纳的解决办法),原理不解,问题却解
某一天:重新安装了一遍DB2,操作图一还是报错,放弃了。
次日:经过将近长达一周的斗争,本来已经放弃了,但是今天开机后偶然查看了一下DBLog发现一个之前没有检查过的文件夹"C:\\ProgramData"
通过与同事文件的比对发现在"C:\\ProgramData\\IBM\\DB2\\DB2COPY1\\DB2\\ctrl"文件夹下缺少了一个名为"online.add"的文件,遂将其copy到本地的该路径下,重启服务,操作图一,发现可以正常使用dbvisualizer。
希望能帮助到大家,欢迎大家的批评与指点。
以上是关于DB2:有关"ERRORCODE=-4499, SQLSTATE=08001"详解的主要内容,如果未能解决你的问题,请参考以下文章
db2 常见错误以及解决方案[ErrorCode SQLState]
db2 连接报错connect。 ERRORCODE=-4499, SQLSTATE=08001(转载)
DB2,原因:密码已到期。 ERRORCODE=-4214, SQLSTATE=28000
DB2中三个有关锁变量DB2_EVALUNCOMMITTED,DB2_SKIPDELETED和DB2_SKIPINSERTED的使用