Wednesday, February 27, 2013

Java SQL Exception “No more data to read from socket” in Oracle

Application using JDBC 10.1.0.5 fails with below error after upgrading your database from Oracle 9i to 10g.

JDBC Version 10.1.0.5 to 11.1.0.7 are affected with this issue.

java.sql.SQLException: OALL8 is in an inconsistent state.
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)
at oracle.jdbc.driver.T4C8Oall.init(T4C8Oall.java:325)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:170)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:633)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1161)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3001)
Caused by: java.sql.SQLException: No more data to read from socket at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:175)
at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:898)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:994)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:951)
at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:100)
at oracle.jdbc.driver.T4CConnection.do_rollback(T4CConnection.java:478)
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1263)


Cause:- The error is due to the published Bug 5851267.

This issue is caused by constraints used by the optimizer getting attempted to be used at run time when they should not. This issue is documented in Note:463899.1

You should see the following error in the trace file during the execution of the transaction

ORA-07445: Exception aufgetreten: CORE Dump [delrefi()+34] [SIGSEGV] [Address not mapped to object] [0x8] [] []

Solution: This issue has been fixed in 11.1.0.7.

If you are running in 10g then you can apply the patch for Bug:5851267
Or

you can use the following workaround to resolve the issue.

Set database parameter "_optimizer_join_elimination_enabled" to false. By doing this you can disable the elimination transformation.

SQL> alter session set “_optimizer_join_elimination_enabled”=false;

For more information refer below metalink notes
BUG:5851267 - ORA-07445 DURING EXECUTION OF PACKAGE WHERE DELETE OCCURS
NOTE:463899.1 - ORA-7445 [Delrefi] Where Delete Occurs

Regards
Satishbabu Gunukula, Oracle ACE
http://www.oracleracexpert.com

8 comments:

  1. hi, I am a student and i need the patch for BUG:5851267 .

    ReplyDelete
  2. Thanks. This resolved the issue that i was facing!

    ReplyDelete
  3. Online JSF Training JSF Training Institutes in Chennai Java Training Institutes Java Training Institutes Struts2 Training Institutes in Chennai Struts2 Training Institutes in Chennai

    EJB Training Institutes in Chennai EJB Training Institutes in Chennai Java EE Training Institutes in Chennai Java EE Training Institutes in Chennai Java Training in CHennai

    ReplyDelete
  4. Hibernate Online Training Hibernate Online Training Hibernate Training in Chennai Hibernate Training in Chennai Java Online Training Java Online Training Hibernate Training Institutes in ChennaiHibernate Training Institutes in Chennai

    ReplyDelete