Release Notes for Red Hat build of Debezium 3.4.3


Red Hat build of Debezium 3.4.3

What's new in Red Hat build of Debezium

Red Hat build of Debezium Documentation Team

Abstract

Describes the Red Hat build of Debezium product and provides the latest details on what's new in this release.

Chapter 1. Debezium 3.4.3 release notes

Debezium is a distributed change data capture platform that captures row-level changes that occur in database tables and then passes corresponding change event records to Apache Kafka topics. Applications can read these change event streams and access the change events in the order in which they occurred.

Debezium is built on Apache Kafka and is deployed and integrated with Streams for Apache Kafka on OpenShift Container Platform or on Red Hat Enterprise Linux.

The following topics provide release details:

1.1. Debezium database connectors

Debezium provides source connectors and sink connectors that are based on Kafka Connect. Connectors are available for the following common databases:

Source connectors
  • Db2
  • Informix (Developer Preview)
  • MariaDB
  • MongoDB
  • MySQL
  • Oracle
  • PostgreSQL
  • SQL Server
Sink connectors
  • JDBC sink connector
  • MongoDB sink connector (Developer Preview)

1.2. Connector usage notes

Db2
  • The Debezium Db2 connector does not include the Db2 JDBC driver (jcc-11.5.0.0.jar). See the Db2 connector deployment instructions for information about how to deploy the necessary JDBC driver.
  • The Db2 connector requires the use of the abstract syntax notation (ASN) libraries, which are available as a standard part of Db2 for Linux.
  • To use the ASN libraries, you must have a license for IBM InfoSphere Data Replication (IIDR). You do not have to install IIDR to use the libraries.
Informix
  • The Debezium Informix connector does not include the Informix JDBC driver and Change Stream client that Debezium requires to connect to a Informix database. See the Informix connector deployment instructions for information about how to obtain the necessary components.
Oracle
PostgreSQL
  • To use the Debezium PostgreSQL connector you must use the pgoutput logical decoding output plug-in, which is the default for PostgreSQL versions 10 and later.

1.3. Debezium supported configurations

For information about Debezium supported configurations, including information about supported database versions, see the Debezium 3.4.3 Supported configurations page.

1.4. Debezium installation options

You can install Debezium with Streams for Apache Kafka on OpenShift or on Red Hat Enterprise Linux:

1.5. Debezium 3.4.3 features and improvements

Because this patch release closely follows earlier 3.2 releases, these notes incorporate information from those releases.

Information about release features is presented in the following sections:

1.6. Breaking changes

Breaking changes represent significant differences in Debezium behavior or require configuration changes that are not compatible with earlier Debezium versions. The following list includes new breaking changes, as well as changes that were introduced in Debezium 3.2.7.

1.6.1. Breaking changes relevant to all users

The following breaking changes apply to all connectors:

Deprecated snapshot modes removed

The schema_only_recovery and schema_only snapshot modes have been removed. In place of those options, use the recovery and no_data snapshot modes.

DBZ-8171

Java 17 is required
  • All Debezium connectors require a runtime baseline of Java 17.
  • If you use Java 11 with new connectors, Kafka Connect silently fails to find the connector. The connector does not report any bytecode errors
  • To run Debezium Server, a runtime baseline of Java 21 is required.
Kafka 4.1.0 and 4.1.1 support

Debezium is now built and tested using Apache Kafka 4.1.0 and 4.1.1

For details about compatibility between Debezium, Streams for Apache Kafka, and Kafka, check the Debezium supported configurations document.

DBZ-9460, DBZ-9709

Transition to GitHub Issues to report bugs and request enhancements

Beginning with this release, Debezium is transitioning away from using Jira to report bugs and request features or enhancements. The existng Jira instance will remain available for a period, in read-only mode, but it is scheduled to be retired in the near future.

You should now submit all bug reports and enhancement requests, including feedback on the documentation, to the Debezium Issues page at https://github.com/debezium/dbz/issues.

1.6.2. Db2 connector breaking changes

Removal of when_needed snapshot mode for the Db2 connector

Due to problems that the Db2 connector experienced when attempting to validate offsets, the when_needed snapshot mode is removed in this release. If the snapshot.mode in your connector configuration is set to use this option, edit the configuration to specify a different mode. For more information, see Known problems and limitations.

DBZ-9470

1.6.3. JDBC sink connector breaking changes

Data type precision changes
Upgrade to Hibernate 7.1.0.Final results in greater data type precision. Time and timestamp columns now default to 9-digit precision instead of 6-digit. Only new columns use the new precision; existing columns are unaffected.

1.6.4. Oracle connector breaking changes

XML dependencies included by default
The XDB and XMLParserV2 libraries are now included in the connector distribution by default, simplifying XML column type capture.

1.6.5. PostgreSQL connector breaking changes

PostgreSQL 13 support ended

PostgreSQL 13 is no longer tested or supported.

DBZ-9376

LSN flush strategy configuration changed
New lsn.flush.mode configuration option replaces the deprecated flush.lsn.source property. For more information, see the PostgreSQL Technology Preview notes.
1.6.5.1. SQL Server connector breaking changes
Default query mode changed

The default value for data.query.mode changed from function to direct for more efficient query execution. Set to function to restore old behavior.

DBZ-9394

1.7. General availability features

This release includes several features that are now generally available and fully supported. Most of the entries in this section refer to features that were previously introduced in earlier 3.2 releases.

For a complete list of Jira issues related to the release, see the Debezium 3.4.3 Enhancement Advisory (Errata document, RHSA-2026:162157-01).

Debezium 3.4.3 provides General Availability features for the following connectors:

Exactly-Once Semantics

Support for exactly-once semantics for all core connectors (MariaDB, MongoDB, MySQL, Oracle, PostgreSQL, SQL Server), ensuring events are delivered and written to Kafka topics only once.

DBZ-9177

Disable context headers

New extended.headers.enabled configuration option can be set to false to disable OpenLineage context headers, and help to minimize event payloads.

DBZ-9248

Large schema memory guards

New guardrail.collections.max and guardrail.collections.limit.action configuration options prevent OutOfMemoryError issues in environments that process hundreds to thousands of tables.

DBZ-9427

Timezone conversion for source fields

The ConvertTimezone SMT now supports converting ts_ms, ts_us, and ts_ns fields from the source information block.

DBZ-9372

1.7.2. JDBC sink connector GA features

Database exception retry

The connector now automatically retries SQL exceptions during change processing, providing resilience for transient issues like lock conflicts in multi-task environments.

DBZ-7772

Geometry data type support in JDBC sink

Debezium source connectors support for various geometry and geography column types. To serialize these types, source connectors use custom Debezium logical types that are based on the Struct semantic type in Kafka. This is a complex field type that Debezium uses to encode both Well-Known Binary (WKB) and Extended Well-Known Binary) (EWKB) byte arrays along with the spatial reference identifier or SRID.

When you pair the Debezium JDBC sink with a source connector, the JDBC sink connector can convert geometry column values to the format required by the target database, if it supports such column types. This feature requires no special configuration.

For more information about how the connector maps geometry types from source databases to sink databases, see the JDBC connector documentation in the {NameDebeziumUserGuide].

DBZ-9508

Passthrough collection naming strategy
The io.debezium.sink.naming.PassthroughCollectionNamingStrategy uses the event topic name directly as the target table name without sanitization. DBZ-9679
JDBC Collection and field name transformations
FieldNameTransformation
The JDBC sink transformation FieldNameTransformation modifies the case of column or field names in the payload of a change event record. The change is applied before the event is consumed by the target system. You can use the transformation to modify the case of the column name and to add a prefix or suffix to the name. Naming styles: default, UPPER_CASE, lower_case, snake_case, camelCase, kebab-case
CollectionNameTransformation
The JDBC sink transformation CollectionNameTransformation changes the case of the topic name in a change event record before the target system consumes the record. You can use the SMT to change the case of the name and to add a prefix or suffix. The transformation supposrts the same naming style options as the field name transformation.

For more information about both transformations, see Transformations that alter topic names in the JDBC connector documentation.

Support for MariaDB vector data types

MariaDB 11.7 introduced the VECTOR(n) data type, so that the relational database can store values as if it were a vector database. With the vector data type, the database can store and search for Vector values that are generated by an AI model.

In this release, the Debezium provides support for processing the MariaDB VECTOR data type in the MariaDB source connector and in the JDBC sink connector when writing to a MariaDB target database For more information about how Debezium handles Vector types, see the Debezium MariaDB connector documentation.

DBZ-8582

1.7.3. Oracle connector GA features

1.7.4. PostgreSQL connector GA features

Support for PostgreSQL 18
This release supports use with a PostgreSQL 18 database.
Support for PostgreSQL TSVECTOR data types

Debezium processes PostgreSQL events that use the tsvector data type. The Debezium JDBC sink connector can write TSVECTOR values to PostgreSQL targets. For non-PostgreSQL sink databases, the connector writes to character-based columns.

For more information see, Documentation for PostgreSQL connector pgvector types.

DBZ-8121

1.7.5. SQL Server connector GA features

SQL Server connector is unable to resume incremental snapshot after restart

When an incremental snapshot was in progress for a SQL Server connector, if a rebalance or connector restart was triggered for any reason, the incremental snapshots would fail to resume after the connector restarted. This behavior was due to regression in the way that the connector handled offsets during incremental snapshots.

This issue is now fixed, and SQL Server users should now observe that if the connector restarts during an incremental snapshot, after a restart the snapshot resumes as intended.

DBZ-9533

EWKB/WKB conversion SMT

The GeometryFormatTransformer single message transform (SMT) converts geometry values in change events between WKB and EWKB format to ensure that target systems receive spatial data in the most compatible format.

For more information, see the GeometryFormatTransformer SMT documentation in the Debezium User Guide.

DBZ-9575

Geometry coordinate swap SMT

The SwapGeometryCoordinates single message transformation (SMT) converts coordinate system data in a change event for compatibility between systems that use different conventions.

For more information, see the SwapGeometryCoordinates documentation in the Debezium User Guide.

DBZ-9556

Exactly-once delivery for PostgreSQL streaming (Technology Preview)

In this release, the Developer Preview of the exactly-once semantics for the PostgreSQL connector is promoted a Technology Preview. Exactly-once delivery for PostgreSQL applies only to the streaming phase; exactly-once delivery does not apply to snapshots.

Debezium was designed to provide at-least-once delivery with a goal of ensuring that connectors capture all change events that occur in the monitored sources. In KIP-618 the Apache Kafka community proposes a solution to address problems that occur when a producer retries a message. Source connectors sometimes resend batches of events to the Kafka broker, even after the broker previously committed the batch. This situation can result in duplicate events being sent to consumers (sink connectors), which can cause problems for consumers that do not handle duplicates easily.

No connector configuration changes are required to enable exactly-once delivery. However, exactly-once delivery must be configured in your Kafka Connect worker configuration. For information about setting the required Kafka Connect configuration properties, see KIP-618.

Note

To set exactly.once.support to required in the Kafka worker configuration, all connectors in the Kafka Connect cluster must supports exactly-once delivery, If you attempt to set this option in a cluster in which workers do not consistently support exactly-once delivery, the connectors that do not support this feature fail validation at start-up.

The following features are promoted to General Availability (GA) in the Debezium 3.4.3 release.

Informix source connector

In this release, the Debezium source connector for Informix is available for General Availability.

The Debezium Informix source connector captures row-level changes from tables in an IBM Informix database. The connector is based on the Debezium Db2 connector, and uses the Informix Change Data Capture API for Java to capture transactional data. This API captures data from the current logical log and processes transactions sequentially.

The connector is compatible with Informix Database 12 and 14, and with version 4.50.11 of the Informix JDBC driver.

Important

Due to licensing requirements, the Debezium Informix connector archive does not include the Informix JDBC driver or the Change Stream client that Debezium requires to connect to an Informix database. Before you can use the connector, you must obtain the driver and the client library and add them to your connector environment.

Prerequisites

  • A database administrator must enable full row logging for the database and otherwise prepare the database and the database server for using the Change Data Capture API.
  • You have a copy of the Informix JDBC driver in your connector environment. The driver is available from Maven Central.
  • You have installed the Informix Change Streams API for Java.
    The Change Streams API for Java is packaged as part of the Informix JDBC installation, and is also available on Maven Central alongside the latest JDBC drivers. The API is required to enable CDC on the database.
1.7.6.2. MongoDB connector features promoted to GA
MongoDB source connector collection-scoped streaming (Technology Preview)

This feature is promoted from Developer Preview to Technology Preview.

In previous versions of the Debezium MongoDB source connector, change streams could be opened against the deployment and database scopes, which was not always ideal for restrictive permission environments. Debezium 3.4.3 introduces a new change stream mode in which the connector operates within the scope of a single collection only, allowing for such granular permissive configurations.

To limit the capture scope of a MongoDB connector to a specific collection, set the value of the capture.scope property in the connector configuration to collection. Use this setting when you intend for a connector to capture changes only from a single MongoDB collection.

The following limitation applies to the use of this feature:

  • If you set the value of the capture.scope property to collection, the connector cannot use the default source signaling channel. Enabling the source channel for a connector is required to permit processing of incremental snapshot signals, including signals sent via the Kafka, JMX, or File channels. Thus, if you set the value of the capture-scope property in the connector configuration to collection, the connector cannot perform incremental snapshots.

DBZ-7760

1.7.6.3. Oracle connector features promoted to GA
Oracle connector unbuffered LogMiner adapter

In this release, when you configure the Oracle connector to use the native Oracle LogMiner API to read and stream changes from database transaction logs, you can specify that the connector streams committed changes only. In this committed changes mode, the connector forwards change event records immediately to destination topics without first buffering them. Because the connector does not maintain an internal transaction buffer, it requires less connector memory than the default buffered logminer setting. However the source database experiences a corresponding increase in its processing load and memory requirements. To set this option, assign the value logminer_unbuffered to the Oracle connector property, database.connection.adapter.

DBZ-9351

Use of the Oracle connector XStream adapter to ingest database changes

By default, the Debezium Oracle connector uses an adapter that connects to the native Oracle LogMiner utility to retrieve data from the redo logs. In database environments that support XStream, you can instead configure the connector to ingest change events through the Oracle XStream API.

For information about configuring Debezium to use the Oracle XStream adapter, see the Debezium Oracle connector documentation.

1.8. Technology Preview features

This release includes several feature that are available for Technology Preview.

Items listed in this section include some features that were introduced in earlier releases and remain in Technology Preview. The following Technology Preview features are available in this release:

PostgreSQL connector LSN flush mode

Important

Technology Preview features are not supported with Red Hat production service-level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend implementing any Technology Preview features in production environments. Technology Preview features provide early access to upcoming product innovations, enabling you to test functionality and provide feedback during the development process. For more information about support scope, see Technology Preview Features Support Scope.

PostgreSQL connector flexible recovery for LSN desynchronization scenarios (Technology Preview)

The PostgreSQL connector introduces an extended flushing and recovery model to improve robustness when handling LSN desynchronization scenarios. The connector adds the new lsn.flush.mode property, replacing the deprecated flush.lsn.source. boolean. You can use this property to set the connector to follow one of several LSN flushing behaviors.

To complement the available flush modes, you can set the offset.mismatch.strategy property to specify one of several strategies that the connector to recover after the stored Kafka Connect offset and the PostgreSQL replication slot LSN diverge

For more information, see the documentation for the link:https://docs.redhat.com/documentation/en/red_hat_build_of_debezium/3.4.3/html-single/debezium_user_guide/index#postgresql-property-lsn-flush-mode [lsn.flush.mode] and offset.mismatch.strategy properties in the PostgreSQL connector documentation.

DBZ‑9641, DBZ‑9688

Change to the PostgreSQL LSN flush strategy configuration

The lsn.flush.mode configuration property replaces the deprecated flush.lsn.source property. The new option provides three modes: connector (default), manual, and connector_and_driver. The Extended PostgreSQL flushing strategy refers to the connector_and_driver mode for the lsn.flush.mode`property. This setting causes the keep-alive thread to flush LSNs (Log Sequence Numbers). The keep-alive LSN reflects all WAL activity, including unmonitored operations like `CHECKPOINT, VACUUM, or pg_switch_wal() that don’t produce logical replication change events. The enhanced flushing mechanism helps to prevent WAL growth on low-activity databases in which infrequent changes occur in monitored tables.

For information about how to specify the method that the connector uses to flush the LSN (Log Sequence Number) to the PostgreSQL replication slot, see the documentation for the lsn.flush.mode configuration property in the Debezium User Guide.

DBZ-9641

In this release, the following features that were introduced in earlier releases remain in Technology Preview:

CloudEvents converter (Technology Preview)
The CloudEvents converter emits change event records that conform to the CloudEvents specification. The CloudEvents change event envelope can be JSON or Avro and each envelope type supports JSON or Avro as the data format. For more information, see CloudEvents converter.
Custom converters (Technology Preview)
In cases where the default data type conversions do not meet your needs, you can create custom converters to use with a connector. For more information, see Custom-developed converters.
MongoDB sink connector (Technology Preview)

In this release, the the earlier MongoDB sink connector Developer Preview feature is promoted to Technology Preview. The Debezium MongoDB sink connector differs from other vendor implementations in that it can ingest raw change events emitted by Debezium connectors without first applying an event flattening transformation. The MongoDB sink connector can take advantage of native Debezium source connector features, such as column type propagation, enabling you to potentially reduce the processing footprint of your data pipeline, and simplify its configuration.

Unlike the JDBC sink relational connector that requires an additional plug-in to be installed to use it, the MongoDB sink connector is bundled alongside the MongoDB source connector in the same artifact. So if you install the Debezium 3.4.3 MongoDB source connector, you also have the MongoDB sink connector.

Minimal configuration is required to get started with the MongoDB sink connector, for example:

{
  "connector.class": "io.debezium.connector.mongodb.MongoDbSinkConnector",
  "connection.string": "...",
  "topics": "topic1,topic2",
  "sink.database": "targetdb"
}

The following configuration properties are mandatory:

connection.string

Provides the details for connecting to the MongoDB sink database.

sink.database

Provides the name of the target database where the changes will be written.

topics

Specifies a comma-separated list of regular expressions that describe the topics from which the sink connector reads event records.

For more information, see the Debezium MongoDB sink connector documentation.

DBZ-8339

Oracle connector use of XML data types (Technology Preview)

The Debezium Oracle connector can process the XMLType data type that Oracle uses for handling XML data in the database.

For information about the mappings that the connector uses for the Oracle XMLTYPE, see XML types in the connector documentation.

In this release the following features are promoted from Developer Preview to Technology Preview:

OpenLineage integration

You can integrate Debezium with OpenLineage to track how data moves through the various systems, transformations, and processes in your data pipeline. The integration with OpenLineage maps events in your data pipeline to artifacts in the OpenLineage data model to provides visibility into where data originates, how it moves, and what dependencies exist in the data pipeline.

For more information about how to enable and configure the OpenLineage integration, see the OpenLineage integration documentation in the Debezium User Guide.

DBZ-9110

OpenLineage integration for sink connectors

OpenLineage enables the capture of rich metadata from data pipelines. With this release, you can use the OpenLineage integration with the JDBC and MongoDB sink connectors.

DBZ-9469

Oracle connector ingesting changes from a logical standby

The ability for the Oracle connector to capture changes from a logical standby continues to be available as a Developer Preview feature. When the Debezium connector for Oracle connects to a production or primary database, it uses an internal flush table to manage the flush cycles of the Oracle Log Writer Buffer (LGWR) process. The flush process requires that the user account through which the connector accesses the database has permission to create and write to this flush table. If stand-by database policies restrict data manipulation or prohibit write operations, the connector cannot write to the flush table.

To support an Oracle read-only logical stand-by database, Debezium introduces a property to disable the creation and management of the flush table. You can use this feature with both Oracle Standalone and Oracle RAC installations.

To enable the Oracle connector to use a read-only logical stand-by, add the following connector option:

internal.log.mining.read.only=true

For more information, see the Oracle connector documentation in the Debezium User Guide.

1.9. Developer Preview features

Debezium 3.4.3 includes several Developer Preview features. Items listed in this section include features that were introduced in earlier releases and remain in Developer Preview. The following Developer Preview features are available in this release:

Important

Developer Preview features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use Developer Preview software for production or business-critical workloads. Developer Preview software provides early access to upcoming product software in advance of its possible inclusion in a Red Hat product offering. Customers can use this software to test functionality and provide feedback during the development process. This software might not have any documentation, is subject to change or removal at any time, and has received limited testing. Red Hat might provide ways to submit feedback on Developer Preview software without an associated SLA.

For more information about the support scope of Red Hat Developer Preview software, see Developer Preview Support Scope.

Debezium AI embeddings SMT (Developer Preview)

To assist you in preparing unstructured text content for use in large language models, use the Debezium AI SMT to convert text captured by a connector into into a numeric representation. The SMT can use the following model providers to generate text embeddings:

  • Hugging Face
  • Ollama
  • ONNX MiniLM
  • Voyage AI

For more information about configuring and using the AI embeddings SMT, see the Debezium community documentation.

DBZ-8702

Debezium Server (Developer Preview)
This release continues to make the Debezium Server available as a Developer Preview feature. The Debezium Server is a ready-to-use application that streams change events from a data source directly to a configured Kafka or Redis data sink. Unlike the generally available Debezium connectors, the deployment of Debezium Server has no dependencies on Apache Kafka Connect. For more information about the Debezium Server Developer Preview, see the Debezium User Guide
MySQL parallel schema snapshots (Developer Preview)

The ability to use parallel schema snapshots with the MySQL connector continues to be provided as a Developer Preview feature.

To improve snapshot performance, the MySQL connector implements parallelization to concurrently snapshot change events and generate schema events for tables. By running snapshots and generating schema events in parallel, the connector reduces the time required to capture the schema for many tables in your database.

DBZ-6472

MariaDB and MySQL parallel initial snapshots (Developer Preview)

The Debezium initial snapshot for MySQL has always been single-threaded. This limitation primarily stems from the complexities of ensuring data consistency across multiple transactions.

In this release, you can configure a MySQL connector to use multiple threads to execute table-level snapshots in parallel.

In order to take advantage of this new feature, add the snapshot.max.threads property to the connector configuration, and set the property to a value greater than 1.

Example 1.1. Example configuration using parallel snapshots

snapshot.max.threads=4

Based on the configuration in the preceding example, the connector can snapshot a maximum of four tables at once. If the number of tables to snapshot is greater than four, after a thread finishes processing one of the first four tables, it then finds the next table in the queue and begins to perform a snapshot. The process continues until the connector finishes performing snapshots on all of the designated tables.

For more information, see snapshot.max.threads in the Debezium User Guide.

DBZ-823

Debezium Quarkus extension (Developer Preview)

The Debezium Quarkus outbox extension assists Quarkus applications in implementing the outbox pattern to share data asynchronously among microservices. The extension works in parallel with a Debezium connector that is configured to use the Outbox Event router SMT to monitor the outbox table.

When an application processes a change that modifies a record in its database, the change triggers the Quarkus extension, which exports a change data record that describes the event to an outbox table. The SMT that monitors the outbox table detects the change, and routes the change event message to a configured Kafka topic. Other microservices in the environment can then consume event messages asynchronously from Kafka, and process the event data as input.

For more information about how to configure and use the Quarkus outbox extension, see the Debezium community documentation.

Web assembly scripting support (TinyGo) (Developer Preview)

Beginning with this release, you can use the TinyGo implementation of the Go language to compile scripts for use in the content-based routing and filtering single message transformations. For more information see the documentation for the topic routing and filtering SMTs.

DBZ-8586, DBZ-8737

1.10. Deprecated features

The following features are deprecated and will be removed in a future release:

flush.lsn.source deprecated
The flush.lsn.source configuration property is deprecated and replaced by lsn.flush.mode. The property is scheduled for removal in a future release. (DBZ-9641)
Deprecation of schema_only and schema_only_recovery snapshot modes

The following snapshot modes are scheduled for removal:

  • The schema_only_recovery mode is deprecated and is replaced by the recovery mode.
  • The schema_only mode is deprecated and is replaced by the no_data mode.

    Important

    The current release continues to include the deprecated snapshot modes, but they are scheduled for removal in a future release. To prepare for their removal, adjust any scripts, configurations, and processes that depend on these deprecated modes.

    For information about features that were deprecated in the previous release, see the 3.2.7 Release Notes

1.11. Known problems and limitations

The following known issues are present in Debezium 3.4.3:

Db2 connector removal of when_needed snapshot mode due to unreliable offset position validation

In recent releases, the Db2 connector was unable to reliably validate its offset position at startup, which could result in connector failures. In this release, the connector’s ability to validate its offset position is removed temporarily to prevent unnecessary failures. Due to this removal, the when_needed snapshot mode for the Db2 connector was also removed and is currently unavailable. A solution to the problem is under investigation.

DBZ-9470

SQL Server connector fails to resume incremental snapshot after a restart

If the connector restarts, or if a re-balance occurs while an incremental snapshot is in progress, the snapshot process ends and cannot be resumed. If you examine the offsets after the failure, you’ll find that during the snapshot the connector does not consistently record offsets, with some offset commits omittng information about the tables to snapshot. The absent table information prevents the connector from resuming the snapshot.

To recover from the failure, perform a full re-snapshot of the affected tables. Afterwards, you can restart your incremental snapshot for all tables.

Note

Running a full initial snapshot can be time-consuming and place a significant load on the source database, especially if the database contains large tables. If you do not need to capture all of the existing historical data, you can reduce the load on the database by setting the snapshot.mode in the connector configuration to no_data. When you apply this setting, the resulting snapshot does not copy the existing table contents. Instead, the connector reads the table schemas, and then transitions to streaming, capturing only those changes that occur in the source data after streaming begins.

DBZ-9533

SQL-based connectors experience parallel initial snapshot exception when snapshot for one table is slow

In some environments, failures can occur when a SQL-based connector is configured to run parallel initial snapshots. This occurs because the time required to complete a snapshot for one table is significantly greater than the time required to complete snapshots for other tables. As a result, the threads for the completed snapshots remain idle for an extended interval, so that the connector is unable to gracefully close the connection. The inability to close the connection can result in an incomplete snapshot, even if all data is sent successfully. Environments are more susceptible to this problem if they include a network device that terminates idle connections to the database, such as a load balancer or firewall.

If you experience this problem, revert the value of snapshot.max.threads to 1.

DBZ-7932

MariaDB connector reports negative binlog position values

A new binary log format was introduced in MariaDB 11.4. Debezium cannot consume events in this new format. If Debezium connects to a database that runs MariaDB 11.4 or later, you must set the MariaDB server variable binlog_legacy_event_pos to 1 (ON) to ensure that the connector can consume events in the new format. If you leave this variable at its default setting (0, or OFF), after a connector restart, Debezium might not be able to find the resume point.

DBZ-8755

Apicurio registry endless rebalance loop on Kafka
For more information, see Apicurio registry 2.4.3 and 2.4.4 causes endless rebalance loop on Kafka

1.12. Fixed issues

The following issues that were identified in earlier releases are now fixed:

Fixed issues that affect all connectors
Data loss after failed ad-hoc blocking snapshots

Streaming position now preserved when snapshot fails, ensuring zero data loss regardless of when or why the snapshot encounters issues.

DBZ-9337

Connector startup cryptic error

Fixed misleading "Invalid value: null used for required field" error message during startup when offset attributes aren’t populated yet.

DBZ-9416

Heartbeat emission regression

Fixed constant heartbeat emission when using heartbeat.action.query, now honors configured heartbeat.interval.ms.

DBZ-9340

JdbcSchemaHistory data sharding

Fixed handling of data sharding when recovering records.

DBZ-8979

Incremental snapshot offset loading

Fixed failure to load incremental snapshot offset on task restart.

DBZ-9209

Context headers duplication

Fixed context headers being added twice during incremental snapshot.

DBZ-9422

Informix connector fixed issues
OpenLineage initialization

Fixed IllegalStateException when openlineage.integration.enabled is set to false.

DBZ-9504

Resource cleanup

Fixed NullPointerException and improved unwatchTable handling during connector shutdown.

debezium/dbz#1704

JDBC sink connector fixed issues
Field name transformation

Fixed FieldNameTransformation not applying case conversion to all field names in payload.

DBZ-9747

MariaDB JSON insertion

Fixed failure to insert JSON data into MariaDB.

debezium/dbz#1492

Multi-task CREATE TABLE collisions

Fixed task crashes due to CREATE TABLE collisions when using multiple tasks with PostgreSQL target.

DBZ-9237

MySQL cluster offset store

Fixed primary key requirement when connecting JDBC offset store to MySQL cluster.

debezium/dbz#5

MariaDB connector fixed issues
Multiple DDL parsing fixes

Fixed failures to parse CONVERT TO CHARSET, RENAME COLUMN IF EXISTS, and system-versioned tables with custom ROW START/ROW END columns.

DBZ-9634, DBZ-9358, DBZ-9411

MongoDB connector fixed issues
ExtractNewDocumentState crash

Fixed crash with nested struct in array.

DBZ-9231

Incremental snapshot conditions

Fixed incremental snapshot not honoring additional conditions.

DBZ-9232

Whitespace in collection.include.list

Fixed incorrect regex pattern when collection.include.list contains whitespace.

DBZ-9657

Parallel snapshot metadata

Fixed thread-safety issue causing incorrect source.collection metadata during parallel snapshot.

debezium/dbz#1531

Null reference exception

Fixed connector throwing null reference exception.

DBZ-9719

MySQL connector fixed issues
Multiple DDL parsing fixes

Fixed failures to parse CREATE TABLE statements, backtick in column names, and implicit nullability in ALTER TABLE.

DBZ-9623, DBZ-9479

Event header NullPointerException

Fixed NullPointerException when getting event header.

DBZ-9483

GTIDSet subtraction failures

Fixed MySQLGTIDSet subtractions failing on UUIDSet that exists only in left operand.

DBZ-9682

Charset handling

Fixed new charset not taken into account.

debezium/dbz#1504

Oracle connector fixed issues
LONG column binding
Fixed ability to bind LONG values only for insert into LONG column.

DBZ-8276

REVOKE FLASHBACK

Fixed connector stopping on REVOKE FLASHBACK operation.

DBZ-9112

Large CLOB/BLOB support

Fixed handling of large CLOB and BLOB values.

DBZ-9392

Multiple DDL parsing fixes

Fixed parser exceptions for DROP MATERIALIZED, PARALLEL keyword, WITH clause, partition operations, ROW ARCHIVAL, and AUTOMATIC keyword.

DBZ-9397, DBZ-9406, DBZ-9238, DBZ-9651, DBZ-9534

Reselect exceptions

Fixed exception handling for ORA-01555 and ORA-22924 errors during reselect operations.

DBZ-9446

XStream low watermark

Fixed invalid low watermark flush in XStream implementation.

DBZ-8923

Primary key drop

Fixed relational metadata not updating when primary key is dropped.

DBZ-9505

Mining session restarts

Fixed too frequent mining session restarts.

DBZ-9680

Database version parsing

Fixed failure to parse Oracle database version.

DBZ-9681

Low watermark calculation

Fixed too conservative low watermark read calculation when lob.enabled is false, restoring performance.

DBZ-9664

Minimum Cache SCN not recalculated after transaction abandonment

Before this update, when the connector used buffered event sources, it failed to recalculate the minimum cache System Change Number (SCN) after it applied transaction retention policies to abandon old transactions. This could result in the connector maintaining stale or incorrect cache metrics. With this update, the connector explicitly recalculates the minCacheScn immediately after abandoning transactions, ensuring the cache state remains accurate.

DBZ-9659(DBZ-9659)

PDB name lowercase

Fixed not collecting DML operations when PDB name is in lowercase.

DBZ-9054

Log mining lower boundary

Fixed lower boundary not updating until log switch.

debezium/dbz#1560

Optional key fields

Fixed incorrectly building on-demand table schema with optional key fields.

debezium/dbz#7

Numeric default values

Fixed numeric default values wrapped in parentheses mistakenly treated as expressions.

debezium/dbz#16

ORA-00310 with RAC

Fixed ORA-00310 exception with RAC and archive log only mode.

DBZ-6013

XMLType text storage

Fixed parser failure for XMLType columns using non-binary (CLOB or object-relational) storage models.

DBZ-9228

ROW ARCHIVAL DML parsing

Fixed DML parsing after snapshot on tables with ROW ARCHIVAL enabled.

debezium/dbz#1676

PostgreSQL connector fixed issues
Duplicate key exception

Fixed duplicate key exception when using pgoutput plugin.

DBZ-9305

Excessive thread creation

Fixed excessive thread creation in LSN flush operations.

DBZ-9501

Timestamp NPE on JDK23+

Fixed NullPointerException for timestamp values on JDK23+.

DBZ-9558

Case-sensitive duplicate columns

Fixed IndexOutOfBoundsException for tables with case-sensitive duplicate column names.

DBZ-9693

Multibyte UTF-8 corruption
Fixed PgOutputMessageDecoder corrupting multibyte UTF-8 table and column names during CDC streaming.
SQL Server connector
Validation failures

Fixed log position validation failures.

DBZ-9212

Incremental snapshot resume

Fixed inability to resume incremental snapshot after restart.

DBZ-9533

History table exception
Fixed IndexOutOfBoundsException for history tables (temporal tables).
Debezium Server
HTTP sink header duplication
Fixed HTTP sink headers duplicating infinitely per message since version 3.2.
NPE during HTTP sink

Fixed NullPointerException during sending to HTTP sink.

DBZ-9698

Legal Notice

Copyright © Red Hat.
Except as otherwise noted below, the text of and illustrations in this documentation are licensed by Red Hat under the Creative Commons Attribution–Share Alike 3.0 Unported license . If you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, the Red Hat logo, JBoss, Hibernate, and RHCE are trademarks or registered trademarks of Red Hat, LLC. or its subsidiaries in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
XFS is a trademark or registered trademark of Hewlett Packard Enterprise Development LP or its subsidiaries in the United States and other countries.
The OpenStack® Word Mark and OpenStack logo are trademarks or registered trademarks of the Linux Foundation, used under license.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat Documentation

Legal Notice

Theme

© 2026 Red Hat
Back to top