在尝试使用Java JDBC连接到DB2时获取异常。
当我使用Scala连接到相同的数据库时,它正在运行,但是使用JAva JDBC时我无法连接,请帮助我解决此错误,我已经可以访问防火墙了。
package com.java.tutorial;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {
public static void main(String args[]) {
Connection conn = null;
Statement stmt = null;
ResultSet result = null;
try {
Driver myDriver = new com.ibm.db2.jcc.DB2Driver();
DriverManager.registerDriver(myDriver);
String URL = "jdbc:db2://mopvsm1.mop.com:38362/RDBND10A";
String USER = "BIMDLM";
String PASS = "GOOD424";
String sql = "select * from MODELING_VERSION";
conn = DriverManager.getConnection(URL, USER, PASS);
stmt = conn.createStatement();
result = stmt.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (conn != null && result != null && stmt != null) {
conn.close();
result.close();
stmt.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
我应该能够使用此代码连接到数据库。但是出现以下异常:
com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException: [jcc]
[t4][2030][11211][4.24.92] A communication error occurred during
operations on the connection's underlying socket, socket input
stream,
or socket output stream. Error location: Reply.fill() -
socketInputStream.read (-1). Message: Connection reset.
ERRORCODE=-4499, SQLSTATE=08001
at com.ibm.db2.jcc.am.b6.a(b6.java:338)
at com.ibm.db2.jcc.t4.a.a(a.java:572)
at com.ibm.db2.jcc.t4.a.a(a.java:556)
at com.ibm.db2.jcc.t4.a.a(a.java:551)
at com.ibm.db2.jcc.t4.a.b(a.java:1671)
at com.ibm.db2.jcc.t4.a.a(a.java:1691)
at com.ibm.db2.jcc.t4.y.b(y.java:271)
at com.ibm.db2.jcc.t4.y.c(y.java:337)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:210)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at com.ibm.db2.jcc.t4.y.b(y.java:225)
... 18 more