Commit Graph

591 Commits

Author SHA1 Message Date
mfvitale
d5febcc054 DBZ-6417 Provide extensible signal action mechanism through SPI 2023-06-23 15:03:27 +02:00
mfvitale
9ed928a1c9 DBZ-6416 Improve tests stability 2023-06-22 13:22:34 +02:00
mfvitale
34e28ac52d DBZ-6416 Add initial snapshot notifications 2023-06-22 13:22:34 +02:00
Jiri Pechanec
090aaa47ec DBZ-5676 Add missing prefix 2023-06-21 17:05:35 +02:00
ani-sha
f7734c226c DBZ-5676 Modify SqlServerConnection definition 2023-06-21 17:05:35 +02:00
ani-sha
2b6c1a591a DBZ-5676 Align QUERY_FETCH_SIZE config in SQLServer Connector to use a default value 2023-06-21 17:05:35 +02:00
Jiri Pechanec
067683e56a DBZ-6076 Consistent config for all connectors 2023-06-15 11:55:28 +02:00
Anil Dasari
0431a8b9fc DBZ-6076: Add support for custom SourceInfoStructMaker for adding new fields to source field 2023-06-15 11:55:28 +02:00
mfvitale
7338fde84e DBZ-6424 Emit JMX Notification when Debezium generate its own notification
DBZ-6424 Emit JMX Notification when Debezium generate its own notification

DBZ-6424 Emit JMX Notification when Debezium generate its own notification
2023-06-07 07:36:58 +02:00
Ronak Jain
3f3967c2bb DBZ-6366: Code Improvements for skip.messages.without.change
Addresses/Closes DBZ-6366
2023-06-05 14:50:25 +02:00
mfvitale
e0659f1a0e DBZ-6496 Fix performance issue on testNotification test with Oracle and MS SQL Server connectors 2023-05-24 18:51:49 +02:00
mfvitale
7429b4e6f1 DBZ-1973 Add incremental snapshot notifications 2023-05-10 12:22:02 +02:00
mfvitale
811b800f55 DBZ-1973 Add support for Notifications
DBZ-1973 Add more tests for other connectors

DBZ-1973 Add send method with offset parameter

DBZ-1973 Instantiate NotificationService in the task class

DBZ-1973 Instantiate NotificationService in the task class

DBZ-4027 Move specific sink channel configuration to SinkNotificationChannel

DBZ-4027 Remove not used SPI file

DBZ-1973 Moved SPI file definition to debezium-core

DBZ-1973 Rename KafkaNotificationChannel to more generic SinkNotificationChannel

DBZ-1973 Code refactor

DBZ-1973 Improve configuration property description

DBZ-1973 Improve test

DBZ-1973 Add close method to NotificationChannel

DBZ-1973 Implement KafkaNotificationChannel

DBZ-1973 Add NotificationService and LogNotificationChannel
2023-05-10 12:22:02 +02:00
mfvitale
952340286e DBZ-4027 Make signalling channel configurable
DBZ-4027 Add an Incremental snapshot test with kafka signaling

DBZ-4027 Add an Incremental snapshot test with kafka signaling

DBZ-4027 Add an Incremental snapshot test with kafka signaling

DBZ-4027 Code style

DBZ-4027 Make SignalPayload more generic and extensible

DBZ-4027 Rename DatabaseSignalChannel to SourceSignalChannel

DBZ-4027 Improve logging

DBZ-4027 Moved SPI file definition to debezium-core

DBZ-4027 Move SignalProcessor synchronization point to be processed only when a signal cdc event arrives.

DBZ-4027 Add EventDispatcher constructor without signalProcessor for spanner connector

DBZ-4027 Fix NPE

DBZ-4027 Fix NPE

DBZ-4027 Formatting

DBZ-4027 Correctly manage signal on not supported connector

DBZ-4027 Use the correct MongoDbOffset

DBZ-4027 Correctly initialize offset for Oracle and SqlServer connectors

DBZ-4027 Register SPI implementations

DBZ-4027 Improve SignalProcessor instantiation

DBZ-4027 Pass source info in case of SchemaChanges action

DBZ-4027 Manage close event in a synchronous way

DBZ-4027 Correctly init offset context also in case of snapshot mode 'never'

DBZ-4027 Fix MySqlMetricsIT test

DBZ-4027 Move KafkaSignalChannel to core

DBZ-4027 Move KafkaSignalChannel to core

DBZ-4027 Set pass offset context after initial snapshot to SignalProcessor

DBZ-4027 Pass OffsetContext to signal processor

DBZ-4027 Pass CommonConnectorConfig to SignalChannelReader init method

DBZ-4027 Move Incremental snapshot window actions to dedicated package

DBZ-4027 Align SignalsIT test with new code

DBZ-4027 Fix SignalsIT test

DBZ-4027 Fix SignalProcessor scheduling

DBZ-4027 Moved DatabaseSignalChannel and SignalChannelReader to dedicated package

DBZ-4027 Start SignalProcessor from ChangeEventSourceCoordinator

DBZ-4027 Create SignalProcessor and renamed Signal to DatabaseSignalChannel

DBZ-4027 Initial refactoring of signal feature
2023-05-05 13:35:40 +02:00
Jiri Pechanec
58ef4f0b98 DBZ-6157 Disable potentially dangerous MySQL JDBC props 2023-05-04 11:54:04 +02:00
harveyyue
3860a4faca DBZ-6388 __source_ts_ms r (read) operation date is set to future for SQL Server 2023-05-02 08:11:02 -04:00
ani-sha
a453c3ca19 DBZ-6259 Add missing description of various snapshot modes in the connector field definitions 2023-05-01 11:03:04 -04:00
Jiri Pechanec
f4c200ac3e DBZ-2979 Fix tests 2023-04-19 09:04:29 +02:00
Ronak Jain
465b355dd0 DBZ-2979 If column.include.list/column.exclude.list are used and the target table receives an update for the excluded (or not included) column - such events should be ignored
* Add More Test Cases

Addresses/Closes DBZ-2979
2023-04-19 09:04:29 +02:00
Ronak Jain
762122ecf5 DBZ-2979 If column.include.list/column.exclude.list are used and the target table receives an update for the excluded (or not included) column - such events should be ignored
* Add Mysql and SqlServer Connector Changes
* Change Docs
* Clean Test Case
* Formatting and Checkstyle

Addresses/Closes DBZ-2979
2023-04-19 09:04:29 +02:00
Jiri Pechanec
5b2638b988 DBZ-4475 Mark test as flaky 2023-04-19 09:04:02 +02:00
Jiri Pechanec
8a648fbb4d DBZ-4488 Refactor code to keep error handler immutable 2023-04-13 08:22:45 +02:00
Jiri Pechanec
1c58055819 DBZ-4488 Use more descritpive names 2023-04-13 08:22:45 +02:00
Jacob Gminder
5e615ff796 DBZ-4488: Reuse the ErrorHandler between retries 2023-04-13 08:22:45 +02:00
Jiri Pechanec
84d0d580bc DBZ-4488 Refactor the code 2023-04-13 08:22:45 +02:00
Jacob Gminder
9d5b6df0f7 DBZ-4488: Allow SQL Server connectors to set a maximum number of retriable exception restarts. 2023-04-13 08:22:45 +02:00
harveyyue
c525f34cd0 DBZ-6070 DDL events not stored in schema history topic for excluded tables 2023-04-06 12:10:30 +02:00
harveyyue
1877906dd8 DBZ-6197 Remove duplicated createDdlFilter method from historized connector config 2023-03-13 10:56:43 +01:00
Jiri Pechanec
3da2434c6c DBZ-823 Restrict the type with generics 2023-03-03 12:47:15 +01:00
Jiri Pechanec
5e666f00ee DBZ-823 Add JavaDoc to new interfaces 2023-03-03 12:47:15 +01:00
Jiri Pechanec
7d92dc0211 DBZ-823 Don't use getter based name 2023-03-03 12:47:15 +01:00
Jiri Pechanec
0f4adb9fe6 DBZ-823 Use better name for CF with main connection 2023-03-03 12:47:15 +01:00
ggaborg
e875e784a0 DBZ-823 CR changes 2023-03-03 12:47:15 +01:00
ggaborg
065dc997b9 DBZ-823 Optionally parallelize initial snapshots 2023-03-03 12:47:15 +01:00
Jacob Gminder
6beea85425 DBZ-6084: Retrieve the database names from the configuration instead of re-parsing them from scratch. 2023-02-07 13:11:23 +01:00
Jacob Gminder
0a1862a5cf DBZ-6084: Validate that database.names is not empty in the SQL server connector configuration. 2023-02-07 13:11:23 +01:00
Jacob Gminder
4acb9304d1 DBZ-6084: Set the number of tasks to the minimum of maxTasks or the number of databases. 2023-02-07 13:11:23 +01:00
harveyyue
57b902ff8c DBZ-5743 Introduce alternative AVRO_UNICODE mode for field name selector 2023-02-02 13:21:45 +01:00
Vojtech Juranek
c52ffe2fcd DBZ-6035 Await transactions also in IncrementalSnapshotWithRecompileIT
Override no-op waitForCdcTransactionPropagation() also in
IncrementalSnapshotWithRecompileIT which also fails very often.
2023-01-31 06:55:40 +01:00
Vojtech Juranek
f53237c249 DBZ-6035 Await for transactions to be propagated to CDC table
Lowering polling interval intorduced in previous commit doesn't fully
fix the issue and there is still small race condition. To fully fix it
add function for awaiting transaction to be propagate to CDC table and
await transaction in tests which randomly fails.
2023-01-26 07:33:10 +01:00
Vojtech Juranek
895fd0b99f DBZ-6035 Add function for adjusting SQL server polling interval
Some tests fail randomly as they insert some records at the begging
of the test, start Debezium and asserts that there are no records.
However, as SQL server poll for the changes and copies them into
CDC table not immediately but in specified interval (by default 5
secods), there can be a race condition when the entries inserted
at the beginning of the test are copied into CDC table after starting
Debezium and it resutls into the test failure as there are unexpected
records.

Add function for adjusting the polling interval and decrease polling
interval in `IncrementalSnapshotIT` which fails very often.

This doesn't fully fix the race condition, but decreases the changes
the issue is hit.
2023-01-26 07:33:10 +01:00
Anil Dasari
e1f9d64fbb DBZ-5852:Snapshotter#snapshotCompleted is invoked regardless of snapshot result 2023-01-19 09:24:02 +01:00
Jeremy Ford
8da86b78e8 DBZ-5879 Fix unit tests 2023-01-18 14:46:14 +01:00
Jiri Pechanec
8ca5e0a9b5 DBZ-4669 Reformat after plugin version consolidation 2023-01-11 06:44:53 +01:00
Mark Lambert
e5d16b14a6 DBZ-2439 Remove redundant modifiers 2023-01-11 06:44:53 +01:00
Keri Harris
9bc7b134c9 DBZ-5924 add JDBC connection URL unit tests for SQL Server connector 2022-12-15 11:41:58 +01:00
Keri Harris
aba74a462f DBZ-5924 refactor SQL-Server JDBC configuration for named instance config parameter 2022-12-15 11:41:58 +01:00
Keri Harris
58eb77d7e4 DBZ-5924 respect SQL-Server database.instance config option 2022-12-15 11:41:58 +01:00
Marcelo Avancini
7754163c5d DBZ-2432: Fixing misuse of assertj
- Some usages of assertj was not callig the actual assert of the DSL, fixing it
- Changing the Assertions to be staticlly imported
2022-12-08 13:10:26 +01:00
ggaborg
a2551b1223 DBZ-4720 sqlserver tests 2022-11-22 14:46:55 +01:00
Chris Cranford
c595fb9ff3 DBZ-5423 Adjust tests 2022-11-14 12:26:00 +01:00
Anisha Mohanty
22f260e09d DBZ-5423 Update the test case & document the changes 2022-11-14 12:26:00 +01:00
Chris Cranford
9b9f41369a DBZ-5423 Update test case 2022-11-14 12:26:00 +01:00
Anisha Mohanty
3b096aecda DBZ-5423 Add test case to support table rename for SQLServer 2022-11-14 12:26:00 +01:00
jcechace
df97a23f62 DBZ-5779 Migrated debezium-connector-sqlserver to AssertJ 2022-11-02 08:50:26 +01:00
Vojtech Juranek
73f056df85 DBZ-5710 Remove whitelist/blacklist from log messages 2022-10-11 15:30:28 +02:00
Jiri Pechanec
0477ddf0e1 DBZ-5670 Use new driver prefix 2022-10-05 14:27:04 +02:00
harveyyue
f6b72f060c DBZ-5671 Remove logic name parameter from sub connector config 2022-10-03 11:40:17 -04:00
Sergei Morozov
e4d46c81b1 DBZ-5541: Default Debezium schema.name.adjustment.mode to "none" 2022-09-29 09:47:25 +02:00
Vojtech Juranek
0748710d18 DBZ-4490 Fix randomly failing updatePrimaryKeyWithRestartInMiddle test
Fix randomly failing
SqlServerConnectorIT#updatePrimaryKeyWithRestartInMiddle.

It seems the main source of instability in slow environments is
consuming snapshot record. It's actually not consumed and as the
test assumes exact order of messages, it leads to failures.

Wait for snapshot to be completed using mbean server. Also add more
asserts to make clear where is the issue if the test continues to fail.
2022-09-27 14:50:07 +02:00
Vojtech Juranek
63167469c2 DBZ-4475 Fix randomly failing updatePrimaryKeyTwiceWithRestartInMiddleOfTx
Fix randomly failing
SqlServerConnectorIT#updatePrimaryKeyTwiceWithRestartInMiddleOfTx

Wait for snapshot to be complteted and consume expected number of
records.
2022-09-27 14:49:25 +02:00
harveyyue
d1153e8ad4 DBZ-5594 Clean up "logical name" config 2022-09-22 14:29:37 +02:00
Sergei Morozov
39f3358747 DBZ-5496: Improve compatibility with Azure SQL
If the SQL Server connector is configured to capture changes from a
single database, pass it to the JDBC connection string in order to
bypass the limitation of Azure SQL which does not allow switchiing
between databases.

See: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/use-transact-sql?view=sql-server-ver15#arguments
2022-09-20 06:29:39 +02:00
harveyyue
288c93434f DBZ-5585 Remove classloader parameter from JdbcConnection 2022-09-19 17:15:29 +02:00
Vojtech Juranek
acc6be6df3 DBZ-5043 Move TOPIC_PREFIX into CommonConnectorConfig
`TOPIC_PREFIX` is now mandatory to all connectors therefore it make
sense to have it in common config. Beside that, it also makes it more
easy to use it in Debezium UI without any workarounds - if the field is
not member of the given connector config, the field has to be
explicitely added into known fields otherwise is invisible for UI.
2022-09-13 09:25:54 +02:00
Anisha Mohanty
9fd204b383 DBZ-5044 Introduce respective SchemaFactory for all connectors 2022-09-08 10:35:20 +02:00
Vojtech Juranek
b797201263 DBZ-5043 Rename DB_HISTORY_PATH to SCHEMA_HISTORY_PATH 2022-09-07 12:57:31 +02:00
Vojtech Juranek
b6c31f3da5 DBZ-5043 Replace 'database history' with 'database schema history'
Reflect renaming database history to schema history in comments,
configuration descriptions and log and error messages.
2022-09-07 12:57:31 +02:00
Vojtech Juranek
0494a16a79 DBZ-5043 Rename DatabaseHistory to SchemaHistory
Rename also all related classes and varibales.
2022-09-07 12:57:31 +02:00
Vojtech Juranek
0823cedf25 DBZ-5043 Replace database.server.name with topic.prefix 2022-09-07 12:57:31 +02:00
Vojtech Juranek
161a7229b6 DBZ-5043 Use topic prefix as the logical name
With this change the user cannot direcly set connector logical name and
thus in the future it can be remove without breaking user config.
If the turn out that the logical name is useful and user should be able
to configure it, dedicated config option can be added.

Originally it was prposed in the Jira to replace it with connector name,
but it turned out that logical name defaults to `database.server.name`
and is heavily used in the tests and JMX, so it would require another
big refactoring. Thus, use topic prefix for now. Once we know further
direction (remove logical name or add new option), do this refactoring.
2022-09-07 12:57:31 +02:00
ggaborg
244de2bd96 DBZ-3293 Add signal table automatically to include list 2022-09-01 20:16:47 +02:00
Jiri Pechanec
de53591dba DBZ-5244 Retry all communication exceptions by default 2022-08-31 09:45:09 -04:00
pkgonan
b031770300 DBZ-5544 Support BASE64_URL_SAFE in BinaryHandlingMode 2022-08-24 09:50:23 +02:00
ggaborg
41ebaa871c DBZ-4631 check SQLServer Agent status only once 2022-08-19 11:09:15 +02:00
ggaborg
a9d0736c75 DBZ-4631 formatting 2022-08-19 11:09:15 +02:00
ggaborg
9676af7a93 DBZ-4631 fix compilation error "text blocks are not supported in -source 11" 2022-08-19 11:09:15 +02:00
ggaborg
0181122274 DBZ-4631 Fix "No maximum LSN recorded" log message can be spammed on low-activity databases 2022-08-19 11:09:15 +02:00
Sergei Morozov
1c99437890 DBZ-5470: Remove the dependency of JdbcConnection on DatabaseSchema 2022-08-19 11:06:59 +02:00
Chris Cranford
b25dae6a0a DBZ-5497 Fix skipped operations logic for SQL Server 2022-08-19 11:05:29 +02:00
Chris Cranford
b7e2112603 DBZ-5497 Align test behavior 2022-08-19 11:05:29 +02:00
Chris Cranford
304e9b7b47 DBZ-5527 Mark verifyOffsets test as ignored 2022-08-18 16:01:35 -04:00
Chris Cranford
08566262c2 DBZ-5525 Fix test failures - EventProcessingFailureHandlingIT 2022-08-18 16:01:35 -04:00
Vivek Wassan
d89e71ebeb DBZ-5327 Smart Backfills 2022-08-17 10:05:55 +02:00
Chris Cranford
8f91e0874e DBZ-5290 Use SSL for SQL Server tests 2022-08-11 13:28:45 +02:00
Sergei Morozov
8f0f9fe3ed DBZ-5477: Remove SQL Server connector SourceTimestampMode 2022-08-05 12:26:39 -04:00
Sergei Morozov
fc7910e1a4 DBZ-5478: Restart SQL Server task on "Socket closed" exception 2022-08-05 10:16:27 -04:00
Vojtech Juranek
c7d8353d7b DBZ-4727 Add snapshot paused JXM metrics
Add two JXM objects:
* `snapshotPaused` - detemines if the incremental snapshot is paused
  or not
* `snapshotPausedDurationInSeconds` - overall time when the incremental
  snapshot was paused. The time adds up - if the snapshot was paused
  e.g. two times, the `snapshotPausedDurationInSeconds` is the sum of
  these two paused times.
2022-07-29 12:41:58 -04:00
harveyyue
5f430f1a8e DBZ-5457 Deprecate legacy topic selector for all connectors 2022-07-28 12:58:59 -04:00
harveyyue
6534385a1c DBZ-5292 Treat SQLServerException with "Broken pipe (Write failed)" exception message as a retriable exception 2022-07-25 13:09:41 -04:00
Chris Cranford
b7a4bbb183 DBZ-4004 Fix SQL Server test EventProcessingFailureHandlingIT 2022-07-20 16:38:24 -04:00
Chris Cranford
f412c2e6a4 DBZ-5396 Add support for connector-specific relational model attributes 2022-07-19 15:41:02 -04:00
Sergei Morozov
77f853f936 DBZ-4726: Remove SQL Server single-partition mode 2022-07-19 09:20:40 +02:00
harveyyue
6ea7abc8fc DBZ-4180 Pluggable topic selector 2022-07-13 14:45:25 +02:00
Jiri Pechanec
d8baac7c46 DBZ-5229 Reorganize code for inheritance use 2022-07-12 17:31:19 +02:00
Hossein Torabi
1ea02be9c2 DBZ-5229 define centralized and modular aproach for debezium storage 2022-07-12 17:31:19 +02:00
Mickael Maison
5ff71aa992 DBZ-5335 Fix formatting issues in the connectors configdefs 2022-06-30 09:35:54 +02:00
Chris Cranford
3fb5bf1339 DBZ-4451 Introduce SchemaChangeEvent factory methods 2022-06-16 09:19:41 +02:00
Chris Cranford
863abcd081 DBZ-4451 Store previous table id in alter schema change events
When a table is renamed with the ALTER TABLE statement, the schema
history record not only will reference the current table's unique id
in the "id" metadata, but will also refer to the old table name in
the "previousId" metadata field.
2022-06-16 09:19:41 +02:00
Chris Cranford
20bb2adea5 DBZ-4834 Fix incremental snapshot of table added to include list 2022-06-16 08:39:16 +02:00