Skip to Main Content

Java Database Connectivity (JDBC)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Intermittent java.sql.SQLException: ORA-08103: object no longer exists

3137856Sep 9 2016 — edited Oct 6 2016

Hi All,

     We are facing an intermittent issue in our java+jdbc application. The application fails with 'ORA-08103: object no longer exists' error. I can see the table being referenced is present in the DB. I can select the data and perform select operation. However the exception is thrown when a select query is executed against the table.

It get resolved on its own after some time. I am unable to consistently reproduce it. Also the table which it logs when the JOB fails is also inconsistent.

Below are the steps that we use during our JOB run.

1. Truncate all the output tables.

2. Populate data needs to be processed into a staging table at start of the JOB. This will have huge amount of data (19 million). Data will be deleted manually after job run.

3. Staging table is used to join with other input tables to fetch required input details for further processing.

4. During JOB processing staging table will be used for reading/writing in parallel by multiple JVMs

Object no longer exists error log references to the staging table and output/input tables. None of the tables are partitioned, they use normal indexes, also they are permanent tables. Our DBA verified and nothing is logged in the alert.log, there is no block corruption.

Oracle Version -  Release 12.1.0.2.0, DB is hosted on linux machine. Application is installed in windows machine and JOB runs in windows machine.

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [?:1.7.0_75]

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [?:1.7.0_75]

        at java.lang.Thread.run(Thread.java:745) [?:1.7.0_75]

Caused by: java.sql.SQLException: ORA-08103: object no longer exists

        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:53) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:774) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:925) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1111) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:4845) ~[ojdbc7.jar:12.1.0.2.0]

        at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1501) ~[ojdbc7.jar:12.1.0.2.0]

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 3 2016
Added on Sep 9 2016
18 comments
5,090 views