Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-2841

Oracle schema history events fail on partitioned table

    XMLWordPrintable

Details

    Description

      When a schema history event is emitted for a partitioned table then the connector fails due to dbms_metadata.get_ddl querying from table type.

      See

      2020-12-09 11:21:39,465 ERROR  OracleConnectorIT||engine  Producer failure   [io.debezium.pipeline.ErrorHandler]
      io.debezium.DebeziumException: java.sql.SQLException: ORA-31603: object "PLAYERS" of type TABLE not found in schema "DEBEZIUM"
      ORA-06512: at "SYS.DBMS_METADATA", line 6478
      ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
      ORA-06512: at "SYS.DBMS_METADATA", line 6465
      ORA-06512: at "SYS.DBMS_METADATA", line 9202
      ORA-06512: at line 1
      
      	at io.debezium.relational.RelationalSnapshotChangeEventSource.lambda$createSchemaChangeEventsForTables$2(RelationalSnapshotChangeEventSource.java:260)
      	at io.debezium.pipeline.EventDispatcher.dispatchSchemaChangeEvent(EventDispatcher.java:268)
      	at io.debezium.relational.RelationalSnapshotChangeEventSource.createSchemaChangeEventsForTables(RelationalSnapshotChangeEventSource.java:255)
      	at io.debezium.relational.RelationalSnapshotChangeEventSource.doExecute(RelationalSnapshotChangeEventSource.java:127)
      	at io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:67)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:105)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      Caused by: java.sql.SQLException: ORA-31603: object "PLAYERS" of type TABLE not found in schema "DEBEZIUM"
      ORA-06512: at "SYS.DBMS_METADATA", line 6478
      ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
      ORA-06512: at "SYS.DBMS_METADATA", line 6465
      ORA-06512: at "SYS.DBMS_METADATA", line 9202
      ORA-06512: at line 1
      
      	at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:1136)
      	at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:1034)
      	at oracle.jdbc.driver.T2CStatement.doDefineFetch(T2CStatement.java:1543)
      	at oracle.jdbc.driver.T2CStatement.executeForRows(T2CStatement.java:1167)
      	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:933)
      	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082)
      	at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1276)
      	at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:366)
      	at io.debezium.connector.oracle.OracleSnapshotChangeEventSource.getCreateTableEvent(OracleSnapshotChangeEventSource.java:251)
      	at io.debezium.relational.RelationalSnapshotChangeEventSource.lambda$createSchemaChangeEventsForTables$2(RelationalSnapshotChangeEventSource.java:257)
      	... 10 more
      

      Use OracleConnectorIT.shouldSnapshotAndStreamChangesFromPartitionedTable for XStream adapter.

      Attachments

        Activity

          People

            ccranfor@redhat.com Chris Cranford
            jpechane Jiri Pechanec
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: