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

Oracle Xstream fails when a LCR is received that references a BFILE column data type

    XMLWordPrintable

Details

    • Feature Request
    • Resolution: Unresolved
    • Major
    • Backlog
    • 1.8.1.Final
    • oracle-connector
    • None
    • False
    • None
    • False
    • 0
    • 0% 0%

    Description

      In order to make your issue reports as actionable as possible, please provide the following information, depending on the issue type.

      Bug report

       

      When I insert BFILE data type into Oracle, I get an error

      Exception in thread "debezium-oracleconnector-CDC-change-event-source-coordinator" oracle.streams.StreamsException: wrong column data type, column: 1, type = 114
              at oracle.streams.DefaultRowLCRCache$ColumnValueCache.exportColumnValue(DefaultRowLCRCache.java:1144)
              at oracle.streams.DefaultRowLCRCache$ColumnValueCache.access$100(DefaultRowLCRCache.java:906)
              at oracle.streams.DefaultRowLCRCache.exportDefaultRowLCR(DefaultRowLCRCache.java:462)
              at oracle.streams.XStreamOut.XStreamOutReceiveLCRCallbackNative(Native Method)
              at oracle.streams.XStreamOut.receiveLCRCallback(XStreamOut.java:465)
              at io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:108)
              at io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:43)
              at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:172)
              at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:139)
              at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:108)
              at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
              at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
              at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
              at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
              at java.base/java.lang.Thread.run(Thread.java:833)
      [2022-07-22 22:30:05,948] INFO Connection gracefully closed (io.debezium.jdbc.JdbcConnection:965)
      [2022-07-22 22:30:05,963] ERROR Producer failure (io.debezium.pipeline.ErrorHandler:31)
      oracle.streams.StreamsException: ORA-26824: user-defined XStream callback error
      KNJLCRDeliverLCR.exportLCR

              at oracle.streams.XStreamOut.XStreamOutReceiveLCRCallbackNative(Native Method)
              at oracle.streams.XStreamOut.receiveLCRCallback(XStreamOut.java:465)
              at io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:108)
              at io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:43)
              at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:172)
              at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:139)
              at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:108)
              at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
              at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
              at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
              at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
              at java.base/java.lang.Thread.run(Thread.java:833)
      [2022-07-22 22:30:05,977] INFO Finished streaming (io.debezium.pipeline.ChangeEventSourceCoordinator:173)
      [2022-07-22 22:30:05,977] INFO Connected metrics set to 'false' (io.debezium.pipeline.metrics.StreamingChangeEventSourceMetrics:70)
      [2022-07-22 22:30:06,211] INFO WorkerSourceTask{id=oracle-test-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask:510)
      [2022-07-22 22:30:06,233] ERROR WorkerSourceTask{id=oracle-test-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:190)
      org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.

      What Debezium connector do you use and what version?

       

      connector-oracle debeizum-1.8.1Final

      What is the connector configuration?

      {
          "name": "oracle-test",
          "config":

      {             "connector.class": "io.debezium.connector.oracle.OracleConnector",             "database.server.name": "CDC",             "database.hostname": "192.168.252.137",             "database.port": "1521",             "database.user": "C##DBZUSERX",             "database.password": "dbz",             "database.dbname": "CDB19C",             "database.pdb.name": "PDB1",             "schema.include.list": "debezium",             "offset.storage": "org.apache.kafka.connect.storage.FileOffsetBackingStore",             "lobEnabled":"true",             "offset.flush.interval.ms": "6000",             "database.connection.adapter": "xstream",             "database.out.server.name" : "dbzxout",             "database.history.kafka.bootstrap.servers": "127.0.0.1:9092",             "database.history.kafka.topic": "oracle.history",             "key.converter.schemas.enable": "true",             "value.converter.schemas.enable": "true",             "snapshot.mode": "schema_only",             "provide.transaction.metadata": "true",             "transforms": "route",             "transforms.route.type": "org.apache.kafka.connect.transforms.RegexRouter",             "transforms.route.regex":"([^.]+)\\.([^.]+)\\.([^.]+)$",             "transforms.route.replacement":"$1.$2.ALL_TABLES"     }

      }
       

      What is the captured database version and mode of depoyment?

      (E.g. on-premises, with a specific cloud provider, etc.)

      oracle_19.3.0  single_instance

      What behaviour do you expect?

      find the reason of this error and fix it

      What behaviour do you see?

      <Your answer>

      Do you see the same behaviour using the latest relesead Debezium version?

      (Ideally, also verify with latest Alpha/Beta/CR version)

      Ideally, also verify with latest Alpha/Beta/CR version

      Do you have the connector logs, ideally from start till finish?

      (You might be asked later to provide DEBUG/TRACE level log)

      <Your answer>

      How to reproduce the issue using our tutorial deployment?

      <Your answer>

      Feature request or enhancement

      For feature requests or enhancements, provide this information, please:

      Which use case/requirement will be addressed by the proposed feature?

      <Your answer>

      Implementation ideas (optional)

      <Your answer>

      Attachments

        Activity

          People

            Unassigned Unassigned
            rusignalflag SignalFlag Ru (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: