Commit Graph

1355 Commits

Author SHA1 Message Date
mfvitale
7ed5649e07 DBZ-7302 Implement Snapshotter for Oracle 2024-02-20 14:45:59 +01:00
mfvitale
6392a1b816 DBZ-7302 Implement SnapshotLock and SnapshotQuery for Oracle connector 2024-02-20 14:45:59 +01:00
Chris Cranford
2af17ac69c DBZ-7365 Upgrade Oracle ojdbc8 from 21.6.0.0 to 21.11.0.0 2024-02-19 14:25:25 +01:00
Chris Cranford
2034d48cf9 DBZ-6960 Fail validation with config state mismatch 2024-02-19 14:02:06 +01:00
Chris Cranford
aab87365d9 DBZ-6960 Include REDO SQL in Oracle source info block 2024-02-19 14:02:06 +01:00
Chris Cranford
340234c2ac DBZ-6679 Only advance LogMiner start position when query has data 2024-02-19 13:52:41 +01:00
Chris Cranford
a75744547a DBZ-7364 Distribute Oracle ojdbc8 with Oracle connector 2024-02-19 08:54:50 +01:00
Chris Cranford
438f0adcde DBZ-7504 Fix LogMinerHelperIT random test failure 2024-02-18 13:03:50 -05:00
jchipmunk
79763211cb DBZ-7479 Refactor code to support re-selection without flashback
Because OracleConnection uses flashback query (AS OF SCN) to re-select row, it is potentially possible to get "ORA-01555 Snapshot too old" error, which can be solved by performing reselection without flashback to get at least its latest row state.
2024-02-17 11:21:45 -05:00
jchipmunk
f50aa7a987 DBZ-7479 PreparedStatement leak in Oracle ReselectColumnsProcessor
Each time, Oracle connector creates a new instance of PreparedStatement because value of commit SCN is added directly to SQL query to reselect column values.
2024-02-17 11:21:45 -05:00
Chris Cranford
e3472d8082 DBZ-7489 Correctly handle setting XML field to "NULL" 2024-02-16 12:54:19 +01:00
Chris Cranford
4978312dad DBZ-7489 Correctly parse XML preamble SQL ending with "IS NULL" 2024-02-16 12:54:19 +01:00
Chris Cranford
928aa26cdb DBZ-7107 Fix source info test failures 2024-02-16 12:52:20 +01:00
Debezium Builder
10e327602c [maven-release-plugin] prepare for next development iteration 2024-02-13 09:20:04 +00:00
Debezium Builder
0c5b05738c [maven-release-plugin] prepare release v2.6.0.Alpha2 2024-02-13 09:20:04 +00:00
Vojtech Juranek
4452e3d095 DBZ-7024 Move EmbeddedConfig into separate class
`EmbeddedConfig` needs to be shared with other implmentations of
`DebeziumEngine` as long as Debezium embedded depends on the Kafka
model.
2024-02-12 13:43:21 +01:00
Chris Cranford
9fbcd6baa1 DBZ-7456 Skip PK change LOB column reselect if column is excluded 2024-02-09 16:43:13 -05:00
Chris Cranford
e2d03d9936 DBZ-7425 Use adapter-specific offset loaders when copying offsets 2024-02-07 19:40:30 -05:00
Chris Cranford
a597a82c19 DBZ-7439 Remove unnecessary log/output entries 2024-02-07 15:00:27 +01:00
Chris Cranford
de9364bb4d DBZ-7439 Fix test compatibility 2024-02-07 15:00:27 +01:00
Ondrej Babec
c806a04531 DBZ-7439 [ci] Add Oracle 23 initialisation scripts
* Create oracle-init dir with SQL init scripts
* Create init-db.sh to set default password and run init scripts
* Update test.sh to run init-db.sh for oracle-23
2024-02-07 15:00:27 +01:00
Chris Cranford
3d22ed30a3 DBZ-7439 [ci] Update TF with Oracle 23
* Introduce new InstantClient version property
  Needed because ojdbc8 versions for Oracle 23 have different version semantics
  Also adjusted documentation/build pipelines
* Introduce oracle-23 profile
  Allows testing Oracle 23 separately from distribution builds
2024-02-07 15:00:27 +01:00
mfvitale
f78d0cbd19 DBZ-7301 Add SnapshotterService to ChangeEventSourceFactory and SnapshotChangeEventSource 2024-02-06 07:12:42 +01:00
jchipmunk
c51ef3099a DBZ-7445 LogMiner batch size does not increase automatically
The condition for increasing the LogMiner batch size must depend on log.mining.batch.size.max, and not on log.mining.batch.size.min.
2024-02-05 12:28:16 -05:00
Chris Cranford
c669857760 DBZ-7446 Fix test failure 2024-02-05 12:26:39 -05:00
jchipmunk
04b8597239 DBZ-7446 Reduce string creation during SQL_REDO column read
Oracle Connector can create a new string when reading SQL_REDO column only if CSF column value is 1.
2024-02-05 12:26:39 -05:00
Chris Cranford
2bfa92e6af DBZ-7429 Resolve primary key values from after struct 2024-01-31 12:05:07 +01:00
nicholas-fwang
7d99605886 DBZ-7143 Add case when EventConvertingFailureHandlingMode is null 2024-01-29 13:48:19 +01:00
nicholas-fwang
eeea0f1e70 DBZ-7143 Add event.converting.failure.handling.mode option 2024-01-29 13:48:19 +01:00
Debezium Builder
65d63ed42d [maven-release-plugin] prepare for next development iteration 2024-01-21 10:12:45 +00:00
Debezium Builder
485fa82a8f [maven-release-plugin] prepare release v2.6.0.Alpha1 2024-01-21 10:12:44 +00:00
Chris Cranford
98bd969624 DBZ-7345 Use equality check instead 2024-01-17 13:07:19 +01:00
Chris Cranford
317daed728 DBZ-7345 Oracle log de-dupe on sequence and redo thread 2024-01-17 13:07:19 +01:00
Vojtech Juranek
33c8430a84 DBZ-7356 Update comment to include relevant DBZ issue 2024-01-17 09:45:43 +01:00
Peter Hamer
e2c0a59ec3 DBZ-7347 Update notification tests. 2024-01-17 09:42:27 +01:00
Chris Cranford
c2eac1714e DBZ-7313 Use parameterized types 2024-01-16 07:32:53 -05:00
Jiri Kulhanek
12a99f33f7 DBZ-7313: close stream 2024-01-16 07:32:53 -05:00
Jiri Kulhanek
f7a06d0c96 DBZ-7313: check if debug log is enabled 2024-01-16 07:32:53 -05:00
Chris Cranford
d689fe1244 DBZ-7313 Fix formatting 2024-01-16 07:32:53 -05:00
Jiri Kulhanek
4d14ef3c22 DBZ-7313: Oracle Infinispan abandoned trasactions minor enhancements 2024-01-16 07:32:53 -05:00
mfvitale
20fbe73bc8 DBZ-7311 Use a more meaningful name for identify an on demand blocking snapshot 2024-01-08 12:52:03 +01:00
mfvitale
47cbdee526 DBZ-7311 Permits to execute a blocking snapshot even if snapshot.mode=never 2024-01-08 12:52:03 +01:00
Chris Cranford
0f5e654193 DBZ-7315 Fix Oracle include/exclude lists with spaces 2024-01-05 10:52:32 +01:00
Mickael Maison
70e7186868 DBZ-7298 Add service loader manifests for all Connect plugins
Add manifests for source/sink connectors, converters and transformations.
2024-01-04 09:22:29 +01:00
Ilyas Ahsan
62cb43a72e DBZ-7288 Unittest for hasCommitAlreadyBeenHandled in CommitScn Class
fix formatting
2024-01-03 08:29:50 -05:00
Debezium Builder
3853d20f44 [maven-release-plugin] prepare for next development iteration 2023-12-21 06:52:01 +00:00
Debezium Builder
5d35e9caaa [maven-release-plugin] prepare release v2.5.0.Final 2023-12-21 06:52:01 +00:00
Jiri Pechanec
d05848ea89 DBZ-6764 Use correct user for registration 2023-12-20 14:26:55 +01:00
ani-sha
4b36ed9975 DBZ-7177 DBZ-6764 Use correct context name and add suggestions for code review 2023-12-20 08:56:56 +01:00
ani-sha
5a27d42257 DBZ-7177 Add isStreaming check for all tests, remove unused files 2023-12-20 08:56:56 +01:00
ani-sha
a12b1a9872 DBZ-6764 Connector metrics implementation for REST extension 2023-12-20 08:56:56 +01:00
ani-sha
e535e5b78d DBZ-7177 Add suggestions from code review, adjust code style changes 2023-12-20 08:56:56 +01:00
ani-sha
2555a1cee2 DBZ-6764 DBZ-7178 DBZ-7177 Use MBeanServer to query metrics for REST endpoint and create new metrics descriptor 2023-12-20 08:56:56 +01:00
ani-sha
2165d9bed1 DBZ-6764 Connector metrics implementation for REST extension 2023-12-20 08:56:56 +01:00
Roman Kudryashov
516aa87fad DBZ-7235 Add option to customize CloudEvents schema name 2023-12-20 06:53:37 +01:00
Jiri Pechanec
4472b4bcd6 DBZ-7251 Enable fitering of Oracle connector 2023-12-19 17:29:37 +01:00
Vojtech Juranek
676876689c DBZ-7257 Fix regression in parsin Oracle 12 version 2023-12-19 16:27:08 +01:00
Vojtech Juranek
043f11e261 DBZ-7257 Add test for paring Oracle versions 2023-12-19 16:27:08 +01:00
harveyyue
225277c5c0 DBZ-7251 Return generic DataCollectionId instead of REST response DataCollection in getMatchingCollections method 2023-12-19 12:53:57 +01:00
harveyyue
4719396ffc DBZ-7145 Introduce a common parent connect for all Debezium source connectors 2023-12-19 12:53:57 +01:00
harveyyue
5553059fb8 DBZ-7167 Provide a public API from the connector implementations to retrieve the list of matching collections or tables based on the different include-/exclude lists 2023-12-19 12:53:57 +01:00
Vojtech Juranek
37ebb8ecae DBZ-7275 Close connection registerd with bean registry
New connection created for bean registry is never closed. Close it
during when stopping the task.
2023-12-19 10:22:02 +01:00
Vojtech Juranek
e48786c194 DBZ-7276 Grant DELETE on signalling table in the incremental snapshot tests
Delete is needed for `insert_delete` watermarking strategy.
2023-12-19 06:23:25 +01:00
Debezium Builder
2c1def7241 [maven-release-plugin] prepare for next development iteration 2023-12-14 09:43:13 +00:00
Debezium Builder
ef8260f802 [maven-release-plugin] prepare release v2.5.0.CR1 2023-12-14 09:43:12 +00:00
Chris Cranford
25ef5fa7d0 DBZ-4321 Fix test failures with Oracle XStream 2023-12-13 11:27:40 -05:00
Chris Cranford
2b02b3982e DBZ-4321 Rework configuration options 2023-12-13 11:27:40 -05:00
Chris Cranford
ada157d117 DBZ-4321 Introduce BeanRegistry and ServiceRegistry
As a part of this work to handle injection in a cleaner way, this commit
adds two new broad concepts called `BeanRegistry` and `ServiceRegistry`.

A BeanRegistry is a glorified registry of different objects that are not
necessarily services but may be desired by a service. This contract will
allow Debezium to integrate in the future with other CDI providers.

A ServiceRegistry is more of an internal concept, where various systems
can be started based on their dependency order and provides a universal
way to split larger parts of the code into smaller, focused modules that
can be accessed using the Service Locator pattern.
2023-12-13 11:27:40 -05:00
Chris Cranford
26b3881941 DBZ-4321 Add MongoDB hook & polish injection handler 2023-12-13 11:27:40 -05:00
Chris Cranford
59027ed5ed DBZ-4321 New PostProcessor contract and Column Reselection 2023-12-13 11:27:40 -05:00
Chris Cranford
9a5d04578e DBZ-7237 Align LOB behavior in snapshot and streaming
The snapshot phase was not setting the unavailable value placeholder when the
user had configured LOB as off, this aligns that behavior to be consistent
with the behavior from streaming.
2023-12-12 10:36:23 +01:00
Chris Cranford
d27154dc60 DBZ-7218 Log warnings if log destination misconfigured 2023-12-11 07:51:24 -05:00
Jiri Kulhanek
28188692d7 DBZ-7236 simple fix of inversed if logic 2023-12-07 05:00:39 -05:00
Chris Cranford
aea6cc003d
[ci] Use a relaxed property check for tests 2023-12-06 18:04:59 -05:00
mfvitale
4fedfbba03 DBZ-6834 Provide INSERT/DELETE semantics for incremental snapshot watermarking 2023-12-06 14:10:26 +01:00
Debezium Builder
0fd1c0dc9a [maven-release-plugin] prepare for next development iteration 2023-12-04 13:55:35 +00:00
Debezium Builder
3e2d75f0da [maven-release-plugin] prepare release v2.5.0.Beta1 2023-12-04 13:55:35 +00:00
Chris Cranford
9976f9848f DBZ-7207 Allow XStream attach errors to be retried 2023-12-01 11:44:28 +01:00
Jiri Kulhanek
8192620d71 DBZ-7208 - implemented check for NPE 2023-11-30 20:28:43 -05:00
Chris Cranford
7ddbeceb82 DBZ-7192 Checkstyle fixes 2023-11-30 00:06:05 -05:00
Jiri Kulhanek
18c672ab6f DBZ-7192: move abandonedTransactionsCache to common abstract layer
also makes sure that events are correctly removed in ISPN event processor after transaction is abandoned.
Also fixes scenario with event number based threshold abandonment in ISPN - events comming afterwards would be still processed.
2023-11-30 00:06:05 -05:00
Jiri Kulhanek
c0f141f51f DBZ-7192: move abandoned transactions impl to Abstract layer
So it is available for ISPN. ISPN does not store list of abandoned transactions

fix rebase

cosmetic changes
2023-11-30 00:06:05 -05:00
mfvitale
5ddf75cbea DBZ-6878 Fix NotificationsIT for Oracle 2023-11-29 12:08:11 -05:00
“vsantonastaso”
8c1c369449 DBZ-6878 add table specific notification in initial snapshot 2023-11-29 08:32:21 +01:00
Chris Cranford
425543d1e0 DBZ-7194 Add GGSHAREDCAP to excluded schemas 2023-11-28 19:56:57 -05:00
Chris Cranford
937677cc89 DBZ-7194 Use a more relaxed version pattern 2023-11-28 19:56:57 -05:00
baabgai
02ad10550f DBZ-7194 Update OracleDatabaseVersion.java
match only to the first occurrence of 'Release ' Substring in Oracle Banner
2023-11-28 19:56:57 -05:00
Jiri Kulhanek
71d80af0b7 DBZ-7169 - populating processed transaction cache only if lobs enabled - in sync with memory event processor 2023-11-27 17:55:56 -05:00
Chris Cranford
aa229424a4 DBZ-7158 Treat Oracle RAC redo thread log sequences independently 2023-11-23 14:14:46 +01:00
rkerner
aeaba3ae70 DBZ-6762 Add "validate filters" endpoint/s for connector-specific Connect REST Extensions
closes to https://issues.redhat.com/browse/DBZ-6762
2023-11-22 06:10:40 +01:00
Chris Cranford
4e1d03c5aa DBZ-7153 Fix test failures for undo operations 2023-11-18 09:11:31 -05:00
Jiri Kulhanek
371237d167 DBZ-7153 - memory cache recreated during startup (from ISPN cache) 2023-11-18 09:11:31 -05:00
Kosta Kostelnik
3508913a3d DBZ-7153 - using an in-mem cache to process faster 2023-11-18 09:11:31 -05:00
Debezium Builder
1521445908 [maven-release-plugin] prepare for next development iteration 2023-11-10 10:26:05 +00:00
Debezium Builder
6c6f6e9138 [maven-release-plugin] prepare release v2.5.0.Alpha2 2023-11-10 10:26:05 +00:00
Chris Cranford
34df6ade4d DBZ-6942 Verify no log sequence gaps on log switch
There is a corner case where it's possible the Oracle connector may query
the Oracle metadata tables quicker than the ARC process can generate an
archive log history record in V$ARCHIVED_LOG, and this can lead to a race
condition where we may incorrectly advance the connector forward to start
mining a group of logs when a log sequence gap exists in the log ranges.

For users who use the online_catalog strategy, there are some checks that
LogMiner does automatically which it skips, and one is with log sequence
gaps. This fix enforces that check by Debezium even for users who may use
the faster online_catalog mode so that no logs are omitted and events
could be missed.
2023-11-10 09:49:10 +01:00
Chris Cranford
b834a3a66a DBZ-6963 Test should only apply to LogMiner 2023-11-09 10:58:01 +01:00
Chris Cranford
81d30a1224 DBZ-6963 Fix test failure 2023-11-09 10:58:01 +01:00
Chris Cranford
a4346222a7 DBZ-6963 Checkstyle fixes 2023-11-09 10:58:01 +01:00
Chris Cranford
b69dbd53e6 DBZ-6963 Do not merge events if table has no LOB columns
There was a possible situation where if a long transaction consisted of
updating and inserting into the same table with identical keys with a
given sequence that the commit handler would merge several events for a
table without LOB columns, resulting in a difference in expected events
in the Kafka topic vs what was seen in LogMiner.
2023-11-09 10:58:01 +01:00