Problem in establishing DB2 Connection with JDBC
843859Jul 30 2009 — edited Nov 20 2014I am trying to establish DB2 connection via Java. I get the following error. I am using the Eclipse as IDE. I have attached the stack trace of the error message and also the java code I use to establish the DB2 Connection. Please advice.
I could succesfully connect to the same DB using external tool. I get this error only when i try to connect to DB using JDBC.
The term "Insufficient data" in the stack trace is misleading. I am not sure, what else information is required to establish connection.
I have following Jar Files in my class path.
· Common.jar
· db2dbgm.jar
· db2fs.jar
· db2jcc4.jar
· db2jcc.jar
· db2jcc_javax.jar
· db2jcc_license_cisuz.jar
· db2jcc_license_cu.jar
· db2policy.jar
· db2qgjava.jar
· db2umplugin.jar
Error Message stack trace:
com.ibm.db2.jcc.a.sm: [jcc][t4][2030][11211][3.51.90] A communication error occurred during operations on the connection's underlying socket, socket input stream,
or socket output stream. Error location: Reply.fill(). Message: Insufficient data. ERRORCODE=-4499, SQLSTATE=08001
at com.ibm.db2.jcc.a.wc.a(wc.java:267)
at com.ibm.db2.jcc.t4.a.a(a.java:357)
at com.ibm.db2.jcc.t4.ab.b(ab.java:219)
at com.ibm.db2.jcc.t4.ab.c(ab.java:237)
at com.ibm.db2.jcc.t4.ab.c(ab.java:348)
at com.ibm.db2.jcc.t4.ab.v(ab.java:1133)
at com.ibm.db2.jcc.t4.bb.a(bb.java:41)
at com.ibm.db2.jcc.t4.b.i(b.java:1284)
at com.ibm.db2.jcc.t4.b.b(b.java:1168)
at com.ibm.db2.jcc.t4.b.c(b.java:723)
at com.ibm.db2.jcc.t4.b.b(b.java:709)
at com.ibm.db2.jcc.t4.b.a(b.java:393)
at com.ibm.db2.jcc.t4.b.<init>(b.java:331)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:193)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.sample.LegacyTraceExample.main(LegacyTraceExample.java:15)
Java Code I use for connection:
package com.sample;
public class LegacyTraceExample {
public static void main(String[] args) {
try {
// load driver
Class.forName("com.ibm.db2.jcc.DB2Driver");
// set connection properties
String databaseUrl = "jdbc:db2://HostName:PortNo/DataBaseName";
// get connection
java.sql.Connection con = java.sql.DriverManager.getConnection(
databaseUrl, "UserName", "Password");
// execute a query
java.sql.Statement stmt = con.createStatement();
String query = "SELECT COUNT(*) FROM TableName";
java.sql.ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
System.out.println("\n" + query + " = " + rs.getInt(1));
}
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}