`

db2连接数据库异常"com.ibm.db2.jcc.c.DisconnectException"

db2 
阅读更多

最近没事搞搞db2的数据,首先安装。下载了一个数据库的客户端。squirrel-sql这个客户端还是比较好用的。是一个免费的客户端。地址我就不贴了。

好了,进入正题。

 

db2和squirrel-sql都安装好之后,遇到一个让我郁闷了两天的问题。在用客户端连接db2数据库的时候出现异常。异常信息是:

com.ibm.db2.jcc.c.DisconnectException: [ibm][db2][jcc][t4][2030][11211] A communication error has been detected. Communication protocol being used: TCP/IP.
Communication API being used: SOCKETS.  Location where the error was detected: Reply.fill().
Communication function detecting the error: InputStream.read().  Protocol specific error codes Insufficient data, * , 0.  Message: null
	at com.ibm.db2.jcc.a.a.a(a.java:366)
	at com.ibm.db2.jcc.a.ab.b(ab.java:219)
	at com.ibm.db2.jcc.a.ab.c(ab.java:237)
	at com.ibm.db2.jcc.a.ab.c(ab.java:348)
	at com.ibm.db2.jcc.a.ab.v(ab.java:1134)
	at com.ibm.db2.jcc.a.bb.a(bb.java:42)
	at com.ibm.db2.jcc.a.b.j(b.java:1254)
	at com.ibm.db2.jcc.a.b.b(b.java:1128)
	at com.ibm.db2.jcc.a.b.b(b.java:711)
	at com.ibm.db2.jcc.a.b.a(b.java:697)
	at com.ibm.db2.jcc.a.b.a(b.java:378)
	at com.ibm.db2.jcc.a.b.<init>(b.java:316)
	at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:174)
	at net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133)
	at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.execute(OpenConnectionCommand.java:97)
	at net.sourceforge.squirrel_sql.client.mainframe.action.ConnectToAliasCommand$SheetHandler.run(ConnectToAliasCommand.java:281)
	at net.sourceforge.squirrel_sql.client.mainframe.action.ConnectToAliasCommand$SheetHandler.performOK(ConnectToAliasCommand.java:238)
	at net.sourceforge.squirrel_sql.client.gui.db.ConnectionInternalFrame.connect(ConnectionInternalFrame.java:311)
	at net.sourceforge.squirrel_sql.client.gui.db.ConnectionInternalFrame.access$300(ConnectionInternalFrame.java:56)
	at net.sourceforge.squirrel_sql.client.gui.db.ConnectionInternalFrame$MyOkClosePanelListener.okPressed(ConnectionInternalFrame.java:461)
	at net.sourceforge.squirrel_sql.client.gui.OkClosePanel.fireButtonPressed(OkClosePanel.java:148)
	at net.sourceforge.squirrel_sql.client.gui.OkClosePanel.access$100(OkClosePanel.java:33)
	at net.sourceforge.squirrel_sql.client.gui.OkClosePanel$1.actionPerformed(OkClosePanel.java:174)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at net.sourceforge.squirrel_sql.client.Main$1.dispatchEvent(Main.java:93)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

 当时我就郁闷了,带着沉重的心情上了百度、谷歌,实验了n种方法,最终没能解决这个问题。

后来发怒了,我写了一个jdbc连接数据库,出现另外一个问题:

连接失败!
com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException: [jcc][t4][2030][11211][4.16.53] 在对连接的底层 socket、socket input stream 或 socket output stream 执行操作期间
发生通信错误。错误位置:Reply.fill() - insufficient data (-1)。消息:数据不足。 ERRORCODE=-4499, SQLSTATE=08001
	at com.ibm.db2.jcc.am.fd.a(fd.java:320)
	at com.ibm.db2.jcc.t4.a.a(a.java:526)
	at com.ibm.db2.jcc.t4.a.a(a.java:510)
	at com.ibm.db2.jcc.t4.a.a(a.java:505)
	at com.ibm.db2.jcc.t4.x.b(x.java:294)
	at com.ibm.db2.jcc.t4.x.c(x.java:320)
	at com.ibm.db2.jcc.t4.x.c(x.java:433)
	at com.ibm.db2.jcc.t4.x.v(x.java:1201)
	at com.ibm.db2.jcc.t4.y.a(y.java:51)
	at com.ibm.db2.jcc.t4.b.c(b.java:1353)
	at com.ibm.db2.jcc.t4.b.b(b.java:1225)
	at com.ibm.db2.jcc.t4.b.b(b.java:793)
	at com.ibm.db2.jcc.t4.b.a(b.java:765)
	at com.ibm.db2.jcc.t4.b.a(b.java:423)
	at com.ibm.db2.jcc.t4.b.a(b.java:398)
	at com.ibm.db2.jcc.t4.b.<init>(b.java:336)
	at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:233)
	at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:199)
	at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:474)
	at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:115)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:185)
	at com.DBconn.DBconnect.getConnection(DBconnect.java:36)
	at com.DBconn.DBconnect.main(DBconnect.java:49)
Exception in thread "main" java.lang.NullPointerException
	at com.DBconn.DBconnect.main(DBconnect.java:51)

 这就让我更加的郁闷了。一个错误还没有解决,新的错误又来了。然后我就死马当活马医。一个个用户名、密码实验,一个个ip实现。黄天不负有心人,最后让我试出来了。不过我也吐血了。

我丢:竟然最终原因就是ip有问题。不能用127.0.01、localhost访问。最终我改成本机的ip后,解决了。我也吐血了。

 

推荐一个db2的配置:http://publib.boulder.ibm.com/tividd/td/ITMFTP/GC23-4801-00/zh_CN/HTML/WTPImst30.htm

配置查询:http://iamwave.iteye.com/blog/649730
db
2数据库的学习中心:http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp

 

分享到:
评论
2 楼 zhengyongqianluck 2014-10-01  
确实改为本地ip连接就可以了
1 楼 feihumingyue 2013-09-11  
very good.找了好几天,没找到解决方法,楼主好样的!

相关推荐

    DB2 驱动包 db2jcc.jar db2jcc_javax.jar db2jcc_license_cu.jar

    在您提供的标题和描述中,提到了三个重要的JAR文件:“db2jcc.jar”,“db2jcc_javax.jar”和“db2jcc_license_cu.jar”,它们是DB2 Java JDBC驱动的一部分。 1. **db2jcc.jar**:这是DB2的JDBC网络通信类库,包含...

    DB2架包db2jcc.jar、db2jcc_license_cu.jar、db2jcc4.jar文件

    标题中提到的"db2jcc.jar"、"db2jcc_license_cu.jar"和"db2jcc4.jar"正是用于连接DB2数据库的Java JDBC(Java Database Connectivity)驱动。 1. **db2jcc.jar**:这是IBM DB2的JDBC Type 4驱动程序,也称为纯Java...

    db2驱动包 db2jcc4.jar db2jcc4.jar db2java.jar db2jcc-javax.jar db2j

    db2驱动包 db2jcc4.jar db2jcc4.jar db2java.jar db2jcc_javax.jar db2jcc_license_cisuz.jar db2jcc_license_cu.jar db2policy.jar,压缩包无加密,可以放心下载,良心资源。

    db2数据库驱动9.7jar包(全) db2jcc.jar+db2jcc_license_cu.jar

    本压缩包包含两个关键的Java数据库连接(JDBC)驱动文件:`db2jcc.jar`和`db2jcc_license_cu.jar`,它们是Java应用程序连接到DB2数据库所必需的组件。 `db2jcc.jar`是DB2 JDBC类型的4驱动程序,它实现了Java.sql和...

    Java连接db2 数据库jar包 db2jcc.jar db2jcc_license_cu.jar

    Java连接IBM DB2数据库通常需要两个关键的JAR文件,即`db2jcc.jar`和`db2jcc_license_cu.jar`。这两个文件在Java应用程序中起着至关重要的作用,因为它们提供了Java连接DB2数据库所需的驱动程序。以下是关于这些文件...

    db2数据库驱动程序 db2jcc.jar、db2jcc_license_cu.jar

    3. 创建数据库连接:`Connection conn = DriverManager.getConnection("jdbc:db2://&lt;hostname&gt;:&lt;port&gt;/&lt;database&gt;", "&lt;username&gt;", "&lt;password&gt;");` 4. 执行SQL语句:通过`Statement`或`PreparedStatement`对象执行...

    db2jcc4.jar下载(jdk1.8测试可用)

    5. 配置数据库连接,例如在Java代码中使用`Class.forName("com.ibm.db2.jcc.DB2Driver")`加载驱动,然后创建`Connection`对象。 使用db2jcc4.jar时,需要注意以下几点: 1. 驱动版本兼容性:不同版本的DB2驱动可能...

    IBM_db2数据库_连接驱动_jcc

    db2数据库连接驱动,jcc.11.5.0.0.jar 测试10.5版本的数据库, 可向下兼容,谢谢

    db2驱动( db2jcc4.jar+db2jcc_license_cu.jar).zip

    这里,"hostname"是DB2服务器的地址,"port"是监听的端口,"dbname"是数据库名,"username"和"password"是数据库连接的凭证。 3. 使用Connection对象执行SQL语句,创建Statement或PreparedStatement对象,然后调用...

    db2驱动程序 db2jcc.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jar

    它实现了JDBC API,包括Connection、Statement、PreparedStatement、ResultSet等接口,使得开发者可以方便地执行SQL语句,处理查询结果,以及管理数据库连接。 db2jcc_license_cu.jar和db2jcc_license_cisuz.jar则...

    驱动包 db2jcc.jar

    最近在自己的环境下搭建连接DB2数据库环境 用到Hibernate 但是连接DB2时 都是有问题 最后发现在网上下载的DB2驱动包有问题 在朋友那里弄到了DB2驱动包 与大家分享

    db2jcc-4.0.jar驱动包

    db2专业驱动jar包,直接使用jdbc就可以连接db2数据库。

    db2驱动 db2注册 db2java.zip db2jcc.jar db2jcc_license_cisuz.jar db2jcc_license_cu.jar

    db2jcc.jar提供了所有必要的功能,使开发者能够在Java环境中编写数据库应用,无需关心底层数据库的具体实现细节。 3. **db2jcc_license_cisuz.jar** 和 **db2jcc_license_cu.jar**:这两个文件是DB2 JDBC驱动的许可...

    db2数据库驱动jar包(全) db2jcc.jar+db2jcc_license_cu.jar

    `db2jcc.jar`包含了所有的DB2特定的JDBC驱动类,包括`com.ibm.db2.jcc.DB2Driver`,这是连接到DB2服务器的主驱动类。 2. `db2jcc_license_cu.jar`: 这个文件包含了DB2的许可证信息。在使用DB2 JDBC驱动时,IBM要求...

    BD2的jar文件db2java.jar,db2jcc.jar,db2jcc_license_cu.jar,db2jcc4.jar

    在Java编程环境中,数据库连接是不可或缺的部分,尤其是对于企业级应用而言。IBM的DB2数据库系统是广泛应用的关系型数据库管理系统,而标题和描述中提到的jar文件是与DB2数据库进行连接的重要组件。这些jar文件提供...

    JDBC连接db2数据库.zip

    1. **解压文件**:首先,你需要将压缩包解压,将`db2jcc.jar`和`db2jcc_license_cu.jar`这两个文件放置在一个可以被Java类路径(Classpath)访问的位置。通常,这可能是你的项目类路径或全局JDK的`lib`目录。 2. **...

    把汉字去掉db2jcc4.zip

    标题中的“把汉字去掉db2jcc4.zip”可能是指在处理数据库连接时遇到的问题,这个问题与IBM的DB2数据库驱动db2jcc4有关。DB2jcc4.jar是IBM DB2数据库Java连接器(JDBC driver)的一个组件,用于在Java应用程序中连接...

    db2jcc和db2jcc4.rar

    在Java应用程序中连接到DB2数据库时,通常需要使用特定的Java数据库连接(JDBC)驱动程序,这就是“db2jcc”和“db2jcc4”的作用。这两个文件名分别代表了IBM DB2的两种不同版本的JDBC驱动。 "db2jcc"是早期的DB2 ...

    DB2 11.5版本 jdbc db2jcc db2jcc4驱动

    DB2是IBM公司开发的一款关系型数据库管理系统,广泛应用于企业级数据存储和管理。在DB2 11.5版本中,JDBC(Java Database Connectivity)驱动是连接Java应用程序与DB2数据库的关键组件。JDBC驱动允许Java代码通过...

Global site tag (gtag.js) - Google Analytics