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

Oracle connector does not correctly handle partially committed transactions

    XMLWordPrintable

Details

    Description

      Hello,

      I found one bug that Debezium Oracle Connector which is happening for a record that failed to be inserted because of a unique constraint and after that you execute COMMIT; it still creates a message in Kafka topic no matter that the record wasn't created actually. 

      Versions:
      debezium - 1.5
      Oracle - 12

      Steps To Reproduce:
      1. Create a Table with a column having Unique Constraint
      2. Try to insert a record with already existing value in that column
      3. Execute COMMIT;
      4. Check if a new message was created.

      Oracle Debezium Source Connector Configuration:

      {
         "connector.class":"io.debezium.connector.oracle.OracleConnector",
         "topic.prefix":"",
         "tasks.max":"1",
         "database.server.name":"***CENSORED***",
         "table.include.list":"***CENSORED***.TRANSACTION_TYPES",
         "numeric.mapping":"best_fit",
         "database.url":"jdbc:oracle:thin:@***CENSORED***:1521:***CENSORED***",
         "database.user":"***CENSORED***",
         "database.schema":"***CENSORED***",
         "database.password":"***CENSORED***",
         "database.dbname":"***CENSORED***",
         "database.history.kafka.bootstrap.servers":"***CENSORED***:9092",
         "database.history.kafka.topic":"schema-changes.TRANSACTION_TYPES",
         "database.connection.adapter":"logminer",
         "transforms":"unwrap,route",
         "transforms.unwrap.type":"io.debezium.transforms.ExtractNewRecordState",
         "transforms.unwrap.add.fields":"op,table,source.ts_ms",
         "transforms.unwrap.drop.tombstones":false,
         "transforms.unwrap.delete.handling.mode":"rewrite",
         "transforms.route.type":"org.apache.kafka.connect.transforms.RegexRouter",
         "transforms.route.regex":"([^.]+)\\.([^.]+)\\.([^.]+)",
         "transforms.route.replacement":"$3",
         "key.converter":"io.confluent.connect.avro.AvroConverter",
         "key.converter.schema.registry.url":"http://***CENSORED***",
         "value.converter":"io.confluent.connect.avro.AvroConverter",
         "value.converter.schema.registry.url":"http://***CENSORED***",
         "pk.fields":"TRT_SERIAL",
         "pk.mode":"record_value",
         "internal.log.mining.dml.parser":"legacy"
      }
      

      Attachments

        Issue Links

          Activity

            People

              ccranfor@redhat.com Chris Cranford
              nnedkov-premfina Nikolay Nedkov (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: