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

Skip empty transactions with commit with redo thread equal to 0

XMLWordPrintable

      When the connector is configured by default (lob.enabled = false), we record transactions lazily, which means only when the first relevant DML event is observed is a transaction constructed in the buffer. This is done as a memory optimization.

      However, this presents a unique issue when COMMIT events related to a transaction that do not perform any relevant DML events is observed in the transaction logs. In such cases, Oracle tends to assign this COMMIT with 0 for the THREAD#.

      To avoid this issue, which causes odd commit_scn values in the offsets with the redo thread number of 0, we should consider skipping any COMMIT marker that:

      • Has no events in the event buffer
      • Has a thread# assigned with a value of 0

      All other commits should be recorded in the offsets.

      Reference: Zulip conversation started - https://debezium.zulipchat.com/#narrow/channel/348250-community-oracle/topic/Understanding.20ehcache.20configuration/near/499023259

              ccranfor@redhat.com Chris Cranford
              ccranfor@redhat.com Chris Cranford
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: