Tôi gặp sự cố khi kết nối với cơ sở dữ liệu Oracle, phải mất một thời gian dài (khoảng ~ 5 phút) và nó gửi ngoại lệ được hiển thị bên dưới. Hầu hết thời gian, sau khi lỗi đầu tiên, các kết nối tiếp theo cho cùng một quá trình hoạt động chính xác.Kết nối Java OracleDB mất quá nhiều thời gian đầu tiên
Đây là một máy RHEL 6, với hai giao diện mạng và địa chỉ IP khác nhau.
LƯU Ý: Tôi không sử dụng url như: "jdbc: oracle: thin: @xxxx: yyy, thực tế là:" jdbc: oracle: thin: @xxxx: yyyy: zzz. SID là không thiếu, tiếc vì điều đó :(
Đây là khoảng những gì tôi đã bị cô lập:
bin/java -classpath ojdbc6_g.jar -Djavax.net.debug = tất cả -Djava .util.logging.config.file = logging.properties
Class.forName ("oracle.jdbc.OracleDriver")
DriverManager.getConnection("jdbc:oracle:thin:@xxxx:yyyy", "aaaa", "bbbb")
Lỗi StackTrace:
java.sql.SQLRecoverableException: IO Error: Connection reset
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:533)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:557)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:233)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:556)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at test.jdbc.Main(Test.java:120)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at oracle.net.ns.DataPacket.send(DataPacket.java:248)
at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:227)
at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:309)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:257)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:182)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:99)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:121)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:77)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1173)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:309)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:200)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOSESSKEY(T4CTTIoauthenticate.java:404)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:430)
... 35 more
.210
Có một khúc gỗ rất dài dòng về những gì xảy ra ở đây: http://pastebin.com/MMFKU26z Dòng nói rằng gặp khó khăn ĐÂY đại diện cho 5 phút thời gian chờ đợi
Tôi đoán nó liên quan đến hai giao diện mạng. Có thể là nó đi sai, lần ra ngoài và sau đó sử dụng đúng? –
Tôi cũng nghĩ vậy, có cách nào để kiểm tra điều này không? – iamedu