2 Replies Latest reply on Feb 4, 2016 8:31 PM by Sdas-Oracle

    Error Completing Bulk using Jena Adapter


      We are trying to use the Jena Adapter to bulk load triples into our model.  We are able to successfully stage the data, but when we run complete bulk we are receiving an ORA-14098 error.  We have successfully bulk loaded data in the past, and this is the first time seeing this error.  Here is the stack trace:


      ERROR[2016-02-03 10:09:07,535] - [main] - [OracleJenaModelProvider]  - Could not complete bulk update due to SQL Exception.

      java.sql.SQLException: ORA-13199:  EXCH: SQLERRM=ORA-14098: index mismatch for tables in ALTER TABLE EXCHANGE PARTITION

      ORA-06512: at "MDSYS.MD", line 1723

      ORA-06512: at "MDSYS.MDERR", line 17

      ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 6565

      ORA-06512: at "MDSYS.SDO_RDF", line 707

      ORA-06512: at "MDSYS.RDF_APIS", line 893

      ORA-06512: at line 1



              at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440)

              at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)

              at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837)

              at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445)

              at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)

              at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)

              at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:204)

              at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1007)

              at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1315)

              at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)

              at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3677)

              at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4714)

              at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)

              at oracle.spatial.rdf.client.jena.Oracle.executeCall(Oracle.java:807)

              at oracle.spatial.rdf.client.jena.OracleBulkUpdateHandler.completeBulk(OracleBulkUpdateHandler.java:1648)

              at oracle.spatial.rdf.client.jena.OracleBulkUpdateHandler.completeBulk(OracleBulkUpdateHandler.java:1578)

              at oracle.spatial.rdf.client.jena.OracleBulkUpdateHandler.completeBulk(OracleBulkUpdateHandler.java:1556)


      Can someone point us in the right direction for which tables and indexes we should be looking at?

        • 1. Re: Error Completing Bulk using Jena Adapter

          The indexes on the transient table RDF$TL... (different suffix is used for each different bulk-load session) into which the current batch of triples have been loaded is not matching the indexes on the RDF model (a specific partition of RDF_LINK$ table used for the target RDF model). This is not expected. We need to look into the two lists of indexes to find the mismatch and go from there. Please feel free to contact me at souripriya dot das at oracle dot com.



          14098, 00000, "index mismatch for tables in ALTER TABLE EXCHANGE PARTITION"

          // *Cause:  The two tables specified in the EXCHANGE have indexes which are

          //          not equivalent

          // *Action: Ensure that the indexes for the two tables have indexes which

          //          follow this rule

          //          For every non partitioned index for the non partitioned table,

          //          there has to be an identical LOCAL index on the partitioned

          //          table and vice versa. By identical, the column position, type

          //          and size have to be the same.



          - Souri.

          • 2. Re: Error Completing Bulk using Jena Adapter

            Just a status note. The problem has now been resolved. PCSGM index on RDF_LINK$ table was found to be defined as nonunique. Bulk-load always expects this index to be unique. This caused the index-mismatch. The issue was resolved by changing the PCSGM index on RDF_LINK$ to be unique UNUSABLE and then rebuilding it. Bulk-load now completed successfully.



            - Souri.

            1 person found this helpful