Java Oracle JDBC连接中的套接字读取超时
我正在使用Oracle DB 11g,并试图将其与Java应用程序连接起来。 我在EclipseIDE中尝试了这个Java代码。我在jre/lib/ext文件夹中安装了ojdbc6,并执行了这个程序。 已成功创建类DriverManager。但是我的代码挂起在Java Oracle JDBC连接中的套接字读取超时,java,oracle,sockets,jdbc,nullpointerexception,Java,Oracle,Sockets,Jdbc,Nullpointerexception,我正在使用Oracle DB 11g,并试图将其与Java应用程序连接起来。 我在EclipseIDE中尝试了这个Java代码。我在jre/lib/ext文件夹中安装了ojdbc6,并执行了这个程序。 已成功创建类DriverManager。但是我的代码挂起在conn=DriverManager.getConnection(url、user、pass)上语句。我打印了跟踪堆栈 import java.sql.*; public class OracleJDBC { public st
conn=DriverManager.getConnection(url、user、pass)上代码>语句。我打印了跟踪堆栈
import java.sql.*;
public class OracleJDBC {
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:TestDB";
String user = "kdhong";
String pass = "kdhong";
Connection conn = null;
String sql = null;
String query = null;
int result;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("success!");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.err.println("error1 = " + e.getMessage());
System.exit(1);
}
try {
conn = DriverManager.getConnection(url, user, pass);
System.out.println("success!");
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
sql = "create table testtable(" +
"id int)";
result = stmt.executeUpdate(sql);
if(result == 0)
System.out.println("table created!!");
conn.commit();
conn.setAutoCommit(true);
stmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java.sql.SQLException:套接字读取超时
位于oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
位于oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:531)
位于oracle.jdbc.driver.T4CConnection(T4CConnection.java:221)
位于oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
位于oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
位于java.sql.DriverManager.getConnection(DriverManager.java:664)
位于java.sql.DriverManager.getConnection(DriverManager.java:247)
位于OracleJDBC.main(OracleJDBC.java:24)
原因:oracle.net.ns.NetException:套接字读取超时
位于oracle.net.ns.Packet.receive(Packet.java:320)
位于oracle.net.ns.NSProtocol.connect(NSProtocol.java:286)
位于oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
位于oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
... 还有7个
线程“main”java.lang.NullPointerException中出现异常
位于OracleJDBC.main(OracleJDBC.java:31)
我已经签出OracleOraDb11g\u Home1TransListener服务正在服务中。那么,什么样的其他问题会导致这种连接问题呢
java.sql.SQLException: Socket read timed out
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at OracleJDBC.main(OracleJDBC.java:24)
Caused by: oracle.net.ns.NetException: Socket read timed out
at oracle.net.ns.Packet.receive(Packet.java:320)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:286)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
... 7 more
Exception in thread "main" java.lang.NullPointerException
at OracleJDBC.main(OracleJDBC.java:31)