Commit Graph

1405 Commits

Author SHA1 Message Date
Vojtech Juranek
9d26dd4cf4 DBZ-7007 Move embedded engine config into separate interface
This config will be re-used by possible other implementations of
DebeiumEngine API in the embedded package. As DebeziumEngine API
can have completely different implementations and thus also config,
the class is called `EmbeddedEngineConfig` as it's assumed to be used
only by embedded engine "family" of implementations.

To keep backward compatibility, the config options are extracted into
an interface and `EmbeddedEngine` implements this interface, thus
allowing to use these options in custom classes without any need for the
code changes.
2023-11-06 10:50:21 +01:00
Chris Cranford
e67620d30e DBZ-7047 Add comment about abstract method usage 2023-11-02 08:58:28 -04:00
Chris Cranford
d67f145971 DBZ-7047 Fixed logic to match previous behavior 2023-11-02 08:58:28 -04:00
Chris Cranford
3803a277d6 DBZ-7047 Clean-up more cache iterator/stream call sites. 2023-11-02 08:58:28 -04:00
Chris Cranford
de0969899f DBZ-7047 Only iterate active transactions when DEBUG enabled 2023-11-02 08:58:28 -04:00
Chris Cranford
16d70a1642 DBZ-7047 Utilize closeable iterators
It is recommended by Infinispan that specific calls that return a collection
of elements should be treated as a closable object so that any and all the
potential resources associated with the operation are closed.
2023-11-02 08:58:28 -04:00
Chris Cranford
642b720982 DBZ-7047 Don't use parallel streaming
Using parallel streams, this causes a severe loss of performance.
2023-11-02 08:58:28 -04:00
rkerner
de6c1976f9 DBZ-6763 Add integration tests for the Debezium Connect REST extension for the Oracle connector / Oracle Connect REST extension
closes to https://issues.redhat.com/browse/DBZ-6763
2023-11-02 09:00:45 +01:00
Debezium Builder
78c5204444 [maven-release-plugin] prepare for next development iteration 2023-10-26 15:39:35 +00:00
Debezium Builder
356e488e83 [maven-release-plugin] prepare release v2.5.0.Alpha1 2023-10-26 15:39:35 +00:00
Chris Cranford
a1b88e98be DBZ-7071 Introduce internal schema change exclusion option
Add a new internal `log.mining.schema_changes.username.exclude.list` to allow users
to customize the default behavior for excluding the SYS and SYSTEM usernames from
DDL changes.
2023-10-25 09:19:11 +02:00
Chris Cranford
5c9870bcfa DBZ-7067 Improve Oracle logging for COMMITs 2023-10-24 22:39:21 -04:00
Chris Cranford
6e814e17a3 DBZ-6975 Fix test failures 2023-10-18 17:56:12 -04:00
Chris Cranford
b96be67937 DBZ-7018 Limit continuation in test to 10 rows 2023-10-13 08:40:34 -04:00
Chris Cranford
2479d811fb DBZ-7018 Allow SQL statements greater than 40kb
In some corner cases, users may have unusually large SQL statements that
need to be buffered due to the number of columns paired with the data in
those columns. Previously we capped this to 4000*10 or 40kb primarily to
address situations with LOB operations that could lead to OOM scenarios.
The new code rather logs a warning when exceeding 100kb and hard faults
ony when the connector sees Integer.MAX_VALUE number of SQL lines for a
single SQL buffer.
2023-10-13 08:40:34 -04:00
Chris Cranford
472d010f7c DBZ-7006 Properly handle escaped CLOB single-quotes 2023-10-11 14:39:12 +02:00
Chris Cranford
e2b871ae7b DBZ-6975 Correctly handle escaped single-quotes in UNISTR arguments 2023-10-11 14:37:44 +02:00
Chris Cranford
67ede63ccc DBZ-6899 Add test-excludes for XStream 2023-10-04 13:47:43 -04:00
Chris Cranford
a3b51b48b9 DBZ-6899 Refactor Oracle streamings metrics 2023-10-04 13:47:43 -04:00
Debezium Builder
40a8f4026d [maven-release-plugin] prepare for next development iteration 2023-10-03 14:18:54 +00:00
Debezium Builder
412c6f7979 [maven-release-plugin] prepare release v2.4.0.Final 2023-10-03 14:18:54 +00:00
Roman Kudryashov
98c426dec4 DBZ-3642 CloudEventsConverter can retrieve metadata info from headers 2023-09-26 13:06:09 +02:00
Debezium Builder
cc1de0aa51 [maven-release-plugin] prepare for next development iteration 2023-09-22 09:00:45 +00:00
Debezium Builder
6809978083 [maven-release-plugin] prepare release v2.4.0.CR1 2023-09-22 09:00:45 +00:00
Jiri Pechanec
bbc8b5b4d6 DBZ-6945 DROP event does not contain table structure 2023-09-22 10:45:00 +02:00
rkerner
6d3528d4fb DBZ-4395 Add connector specific Debezium Connect REST Extension/s and move logic from UI backend to the Debezium Connect REST Extension (part 2 of the re-architecturing/re-factoring)
DBZ-6761 Add "validate connection" endpoints in connector specific Connect REST extensions

closes to https://issues.redhat.com/browse/DBZ-4395
closes to https://issues.redhat.com/browse/DBZ-6761
2023-09-21 13:29:59 +02:00
mfvitale
68eb4b2df2 DBZ-6828 Process drop table events during blocking snapshot 2023-09-20 08:18:33 +02:00
mfvitale
ae199d2053 DBZ-6828 Blocking snapshot will generate schema events only for signaled tables 2023-09-20 08:18:33 +02:00
Chris Cranford
e282817f5c DBZ-6869 Ignore pending transactions with zero START_SCN
Pending transactions with a START_SCN of 0 are considered transactions
that have started before the oldest available archive log and these
will be ignored as the entire transaction cannot be mined.
2023-09-19 15:42:56 -04:00
Chris Cranford
f429118d98 DBZ-6938 Exclude UNUSED redo logs 2023-09-19 15:36:26 -04:00
Chris Cranford
9039a12731 DBZ-6938 Make retry scn-log-check per redo thread 2023-09-19 15:36:26 -04:00
Chris Cranford
3a729932d3 DBZ-6895 Always dispatch heartbeats on commit and checkpoints 2023-09-19 09:00:26 +02:00
Chris Cranford
9bccb2baaf DBZ-6895 Refactor to use Json deserializers 2023-09-19 09:00:26 +02:00
Chris Cranford
1b31c663ff DBZ-6895 Fix OpenLogReplicator confirmation 2023-09-19 09:00:26 +02:00
Jiri Pechanec
f8e4e589d8 DBZ-6903 Use distinct dir for protobuf generated sources 2023-09-13 11:50:47 -04:00
Debezium Builder
65169a9315 [maven-release-plugin] prepare for next development iteration 2023-09-13 09:41:46 +00:00
Debezium Builder
845e3e9d09 [maven-release-plugin] prepare release v2.4.0.Beta2 2023-09-13 09:41:46 +00:00
Chris Cranford
6e10618c94 DBZ-2543 Checkstyle fixes 2023-09-12 18:20:07 -04:00
Chris Cranford
1d9b81b58c DBZ-2543 Confirm only checkpoints 2023-09-12 18:20:07 -04:00
Chris Cranford
e8e11cd40a DBZ-2543 Fix value converter failures 2023-09-12 18:20:07 -04:00
Chris Cranford
46fa3bef4d DBZ-2543 Refactor value conversion logic 2023-09-12 18:20:07 -04:00
Chris Cranford
ca6ccbcd35 DBZ-2543 Remove unnecessary test class 2023-09-12 18:20:07 -04:00
Chris Cranford
e841e6c74d DBZ-2543 Use protoc plugin setup like PostgreSQL 2023-09-12 18:20:07 -04:00
Chris Cranford
c076d9526b DBZ-2543 Remove vert.x dependency 2023-09-12 18:20:07 -04:00
Chris Cranford
2cae1b396d DBZ-2543 Add OpenLogReplicator configuration properties
Added source, host, and port configurable OpenLogReplicator connector properties.
2023-09-12 18:20:07 -04:00
Chris Cranford
0955d0e7d6 DBZ-2543 Disable XML tests for OpenLogReplicator 2023-09-12 18:20:07 -04:00
Chris Cranford
07c7a8236e DBZ-2543 Disable ROWID tests for OpenLogReplicator 2023-09-12 18:20:07 -04:00
Chris Cranford
a87533e4a8 DBZ-2543 Interval data types support 2023-09-12 18:20:07 -04:00
Chris Cranford
51b95e3bfb DBZ-2543 Add timestamp with local time zone support 2023-09-12 18:20:07 -04:00
Chris Cranford
c9f6f4596e DBZ-2543 Clean-up value resolution logic 2023-09-12 18:20:07 -04:00
Chris Cranford
73aa4a6b35 DBZ-2543 Properly decode non-variable RAW data 2023-09-12 18:20:07 -04:00
Chris Cranford
1e803edee8 DBZ-2543 Cleanup timestamptz parsing and DDL handling 2023-09-12 18:20:07 -04:00
Chris Cranford
d130fde297 DBZ-2543 Improve timestamp handling for precision modes 2023-09-12 18:20:07 -04:00
Chris Cranford
26db0b3961 DBZ-2543 Support timestamps with time zone data types 2023-09-12 18:20:07 -04:00
Chris Cranford
748420605e DBZ-2543 Add support for new db field in streaming events 2023-09-12 18:20:07 -04:00
Chris Cranford
2d4d34428d DBZ-2543 Add some streaming metrics 2023-09-12 18:20:07 -04:00
Chris Cranford
d977e9b0f1 DBZ-2543 Initial OpenLogReplicator adapter 2023-09-12 18:20:07 -04:00
Chris Cranford
dd5f1ac0f9 DBZ-6880 Include details about unsupported operations 2023-09-08 14:16:02 -04:00
Chris Cranford
b5700a62c9 DBZ-6880 Move some Oracle log messages to DEBUG 2023-09-08 14:16:02 -04:00
Chris Cranford
a0c67aa0e8 DBZ-6860 Fix NPE Oracle shouldContinueToUpdateOffsetsEvenWhenTableIsNotChanged 2023-08-31 19:13:55 -04:00
Chris Cranford
6aa6b58fdc DBZ-6859 Restore Oracle connector test suite logging 2023-08-31 17:09:25 -04:00
Debezium Builder
d97a18e8dc [maven-release-plugin] prepare for next development iteration 2023-08-29 11:41:08 +00:00
Debezium Builder
5ce25f2cfe [maven-release-plugin] prepare release v2.4.0.Beta1 2023-08-29 11:41:08 +00:00
Ondrej Babec
f03eda1cc4 DBZ-6827 Testing farm onboarding 2023-08-28 10:39:30 +02:00
Chris Cranford
e093a7bdd2
[ci] Fix some failing Oracle tests 2023-08-23 12:53:19 -04:00
Chris Cranford
e3bbc47367
DBZ-6808 Fix tests: Allow global configuration with embedded Infinispan 2023-08-23 10:00:40 -04:00
Chris Cranford
b44cae62e3
DBZ-6798 Fix tests: Expose SCN-based metrics as BigInteger 2023-08-23 10:00:33 -04:00
Chris Cranford
0b2e65c741 DBZ-6615 Fix test failures 2023-08-17 06:24:55 +02:00
Chris Cranford
d5e86e1380 DBZ-6615 Add OldestScnAgeInMilliseconds LogMiner based metric.
This returns the age in milliseconds from the poll time for the age of the oldest
transaction's starting system change number in the transaction buffer.
2023-08-17 06:24:55 +02:00
Jeremy Ford
829b969491 DBZ-6808 Allow the embedded infinispan global configuration to be configurable 2023-08-15 12:53:29 +02:00
mfvitale
542b3619fa DBZ-6731 Blocking snapshot takes configuration from signal payload 2023-08-15 12:43:43 +02:00
Chris Cranford
aad842522b DBZ-6798 Expose SCN-based metrics as BigInteger
The SCN data types were previously exposed as `String` types, which is not
consumable by Grafana and Prometheus. By using `BigInteger`, we can now
make these accessible on dashboards.
2023-08-15 06:06:49 +02:00
Debezium Builder
3c72f071b0 [maven-release-plugin] prepare for next development iteration 2023-08-09 10:33:06 +00:00
Debezium Builder
915c465440 [maven-release-plugin] prepare release v2.4.0.Alpha2 2023-08-09 10:33:06 +00:00
Chris Cranford
dc23f18456 DBZ-6782 Properly solve XMLTYPE data types during DDL changes 2023-08-09 06:46:31 +02:00
mfvitale
61651a94b5 DBZ-6566 Force blocking snapshot even if a snapshot has already executed 2023-08-03 09:22:24 +02:00
mfvitale
85d725fde8 DBZ-6566 Support Blocking snapshot for Oracle 2023-08-03 09:22:24 +02:00
Chris Cranford
fe2573cf86 DBZ-6751 Fix failing test OracleSchemaMigrationIT 2023-08-03 02:49:47 -04:00
Chris Cranford
c920479336 DBZ-6733 Skip mining distance calc. if upper bounds not within distance 2023-08-02 08:38:50 +02:00
Chris Cranford
dbeac568b0 DBZ-6729 Use default of 10000 for snapshot/query fetch sizes 2023-07-31 13:47:53 +02:00
jcechace
699a1612ae DBZ-6670 Replace error handler instead of recreate in order to keep retry counter 2023-07-25 13:46:56 +02:00
mfvitale
b8462e8fe0 DBZ-6599 Support single line statement without semicolon ending 2023-07-20 10:10:16 -04:00
Chris Cranford
afb2ecec63 DBZ-6677 Fix IndexOutOfBoundsException with ALTER TABLE listener
When a user supplies a column visibility clause in an ALTER TABLE statement,
there are no "modify_col_properties" clauses present, and this will lead to
the aforementioned exception. The listener should be tolerant of this case
and should not initialize any column editors.
2023-07-18 09:46:27 +02:00
Chris Cranford
72acea5628 DBZ-6673 Fix flaky Oracle test
The shouldCaptureChangesForTransactionsAcrossSnapshotBoundaryWithoutReemittingDDLChanges test
only expects the tables created by the entire test to exist but tables from other tests not,
and it would appear this commonly happens when another test fails to cleanup after itself.

This fix is to guarantee that the Oracle database state is set properly so that tests from
within this class are executed with the right number of tables expected to exist.
2023-07-18 09:40:41 +02:00
Debezium Builder
267dfda8a6 [maven-release-plugin] prepare for next development iteration 2023-07-17 10:40:52 +00:00
Debezium Builder
0d3cef6a29 [maven-release-plugin] prepare release v2.4.0.Alpha1 2023-07-17 10:40:52 +00:00
Chris Cranford
de8cf36b2c DBZ-6660 Introduce internal.log.mining.max.scn.deviation.ms
We hypothesize that there could be a situation where we may be mining precisely
around the CURRENT_SCN and this may lead to situations where LGWR may not have
flushed all records for the same SCN before being mined by the connector.
2023-07-17 10:22:46 +02:00
Chris Cranford
877a19e278 DBZ-6660 Add redo thread id to abandoned transaction warning 2023-07-17 10:22:46 +02:00
Chris Cranford
d660909fc1 DBZ-3605 Cleanup documentation, dependencies, and SAX requirements 2023-07-17 10:21:11 +02:00
Chris Cranford
34882f9468 DBZ-3605 Add support for RAW data type 2023-07-17 10:21:11 +02:00
Chris Cranford
94d363a004 DBZ-3605 Add support for Oracle XMLTYPE data types 2023-07-17 10:21:11 +02:00
Chris Cranford
b6f299b09c DBZ-6650 Align LogMiner included DML event behavior for truncates 2023-07-14 11:21:39 +02:00
Chris Cranford
56ddbe21d5 DBZ-6650 Avoid ConcurrentModificationException during dispatch 2023-07-14 11:21:39 +02:00
harveyyue
5bc7fd1f7c DBZ-6603 Support for custom tags in the connector metrics 2023-07-13 09:52:33 +02:00
mfvitale
b0b9975782 DBZ-6633 Throw a RetriableException when a SQLRecoverableException occurs during OracleConnection instantiation 2023-07-05 16:50:26 -04:00
Chris Cranford
0518999152 DBZ-6610 Fix retrying nested ORA-01327 exception 2023-06-28 08:45:33 +02:00
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
Debezium Builder
60f730d383 [maven-release-plugin] prepare for next development iteration 2023-06-20 13:21:31 +00:00
Debezium Builder
150396e4c8 [maven-release-plugin] prepare release v2.3.0.Final 2023-06-20 13:21:31 +00:00
Jiri Pechanec
b8607db61c DBZ-6528 Use correct connection 2023-06-19 20:23:17 +02:00
Vojtech Juranek
8172434dda DBZ-6513 Fix the computation of Oracle's negative interval 2023-06-16 07:32:20 +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
Chris Cranford
45d6f2c5ef DBZ-6193 Upgrade Infinispan to 14.0.11.Final 2023-06-15 06:25:50 +02:00
Chris Cranford
ef8059f3ff DBZ-6528 Fix Oracle NPE when storing only captured table schemas with signals 2023-06-14 10:48:19 +02:00
Chris Cranford
ab28e12d2e DBZ-6359 Allow specifying SIDs in Oracle rac.nodes parameter 2023-06-14 08:48:23 +02:00
Jiri Pechanec
c41e70a116 DBZ-6499 Atribute not needed to be passed as param 2023-06-13 07:09:01 +02:00
Chris Cranford
e025230d44 DBZ-6499 Support restarting JDBC connections
Introduces a new configuration option, `log.mining.restart.connection`,
which closes and re-opens the JDBC connection when an Oracle Log switch
occurs or when the optionally configured log mining session max lifetime
is reached.
2023-06-13 07:09:01 +02:00
Debezium Builder
5d1b00588a [maven-release-plugin] prepare for next development iteration 2023-06-09 09:23:38 +00:00
Debezium Builder
d1e6107517 [maven-release-plugin] prepare release v2.3.0.CR1 2023-06-09 09:23:37 +00: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
Debezium Builder
aa5b2131fc [maven-release-plugin] prepare for next development iteration 2023-05-26 10:35:20 +00:00
Debezium Builder
9cc9b3c29a [maven-release-plugin] prepare release v2.3.0.Beta1 2023-05-26 10:35:20 +00:00
Chris Cranford
9ed6a3ae97 DBZ-6502 Fix Oracle 23.x JDBC driver compatibility
Solves ORA-18176 error "{} not in any time zone.DATE" error.
2023-05-25 09:29:09 +02:00
Jiri Pechanec
65b46f204a DBZ-6496 Speed-up another incremental snapshot test 2023-05-24 18:51:49 +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
Jiri Pechanec
d5a3095717 DBZ-6457 Fix formatting 2023-05-19 14:04:14 +02:00
Chris Cranford
d40da4f810 DBZ-6457 Use PDB for parallel snapshot connections 2023-05-19 14:04:14 +02:00
Vojtech Juranek
a58f4b4d4f DBZ-6439 Filter tables only when user want to capture schema for included tables only 2023-05-16 14:48:48 -04:00
Vojtech Juranek
ee4ebaa957 DBZ-6439 Don't scan all the tables when loading schema
Currently we scan all the tables, which may result into a substantial
delay in initial snapshot when the database is very large. We need to
filter out tables which we are not interested in.

Add back table filter when loading schema of tables. As per comment of
this block of code, passing all tables and table filter should be faster
than passing only list of tables we are interested in.
2023-05-15 14:11:47 +02:00
Debezium Builder
a5b44767bc [maven-release-plugin] prepare for next development iteration 2023-05-11 11:05:24 +00:00
Debezium Builder
1b1a7531f2 [maven-release-plugin] prepare release v2.3.0.Alpha1 2023-05-11 11:05:24 +00:00
Jiri Pechanec
b57ac1ca5a DBZ-1973 Guard against uninited fields in Xstream 2023-05-11 11:13:38 +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
Chris Cranford
fc4a31e3d7 DBZ-6436 Improve Oracle LogMiner failure logging
This change explicitly captures the state of two critical tables when the connector
fails to start a LogMiner session, namely V$LOGMNR_LOGS and V$LOGMNR_PARAMETERS.
While these were previously captured by the LogMinerDatabaseStateWriter, the old
code required DEBUG log level and that isn't always feasible, so this change will
capture these in ERROR log level regardless moving forward.
2023-05-09 12:09:36 +02:00
Chris Cranford
30eb53c764 DBZ-6254 Add LogMiner Query and Username Include Filtering
* Add `log.mining.query.filter.mode` configuration option
* Add `log.mining.username.include.list` configuration option
2023-05-09 11:31:08 +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
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
Chris Cranford
3f554645b6 DBZ-6256 Add log.mining.flush.table.name Oracle config option
There is the potential when using multiple connector deployments on Oracle that
there could be some level of lock contention with all connectors using the same
table. This allows users to configure the flush table name themselves, reducing
the lock contention across multiple connector deployments.
2023-05-01 10:41:05 -04:00
Chris Cranford
4664dd6df6 DBZ-6355 Add log.mining.transaction.retention.ms; deprecate log.mining.transaction.retention.hours 2023-04-27 09:28:29 -04:00
Chris Cranford
036d7f831d DBZ-6355 Fix test logic 2023-04-27 09:28:29 -04:00
Chris Cranford
2ee3249d84 DBZ-6355 Fix memory-leak with heap-based abandoned transaction cache 2023-04-27 09:28:29 -04:00
Chris Cranford
8ef9a6f015 DBZ-6355 Reduce logging verbosity 2023-04-27 09:28:29 -04:00
Chris Cranford
e81af64adc DBZ-6355 Add ORA-01555 fallback based on change time 2023-04-27 09:28:29 -04:00
Chris Cranford
1fbb6f228d DBZ-6355 Fix test failures 2023-04-27 09:28:29 -04:00
Chris Cranford
3d7c87401f DBZ-6355 Fix format 2023-04-27 09:28:29 -04:00
Sergey Eizner
b954afd2cc DBZ-6355 Fix log message 2023-04-27 09:28:29 -04:00
Chris Cranford
9f28ef17e4 DBZ-6355 Don't abandon transactions if calculated SCN is before oldest buffered SCN 2023-04-27 09:28:29 -04:00
Chris Cranford
34f6b221c6 DBZ-6355 Remove unused code 2023-04-27 09:28:29 -04:00
Chris Cranford
a0fedf9439 DBZ-6355 Rework test 2023-04-27 09:28:29 -04:00
eizners
fa42a1b0ce DBZ-6355 fix unit tests errors 2023-04-27 09:28:29 -04:00
Sergey Eizner
cac5485176 DBZ-6355 Change to the last offset 2023-04-27 09:28:29 -04:00
Chris Cranford
e6e19fb578 DBZ-6329 Trim value of rs_id 2023-04-23 18:29:07 +02:00
Chris Cranford
f624e39bbc DBZ-6329 Make sure Oracle source rs_id field populated 2023-04-23 18:29:07 +02:00
Debezium Builder
bb1b79f3bd [maven-release-plugin] prepare for next development iteration 2023-04-20 09:09:43 +02:00
Debezium Builder
5483b4de99 [maven-release-plugin] prepare release v2.2.0.Final 2023-04-20 09:09:43 +02:00
Jiri Pechanec
ee5ba8e56f DBZ-2979 Fix Oracle Xstream tests 2023-04-19 15:57:49 +02:00
Chris Cranford
16385994d8 DBZ-5395 Improve Oracle offset management when LOB enabled 2023-04-19 11:24:10 +02:00
Chris Cranford
1805f6e75e DBZ-6276 Marked test ignored by default
The default Debezium Oracle images are pre-configured with archive log mode
enabled and this isn't something we can simply turn off and back on in the
test suite proper. This test must be invoked manually and separately, so it
is disabled by default in the overall test suite execution.
2023-04-19 10:52:18 +02:00
Mark Bereznitsky
4df3895d65 DBZ-6276 changed Oracle archive log check to fail if conditions require it 2023-04-19 10:52:18 +02:00
Jiri Pechanec
2181251a9f DBZ-2979 Fix Oracle tests 2023-04-19 10:50:41 +02:00
Ronak Jain
2c2b87b846 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
* [Unstable][Untested] Add config in Oracle Connector

Addresses/Closes DBZ-2979
2023-04-19 09:04:29 +02:00
Debezium Builder
976a47a3a3 [maven-release-plugin] prepare for next development iteration 2023-04-14 08:46:06 +00:00
Debezium Builder
1ca8399e8b [maven-release-plugin] prepare release v2.2.0.CR1 2023-04-14 08:46:06 +00:00
Chris Cranford
36bc3ce07a DBZ-6129 Use Infinispan Jakarta EE based artifacts 2023-04-13 17:18:23 -04:00
Chris Cranford
84d57628b7 DBZ-6155 Avoid batch size "ping-pong" in Oracle metrics
This avoids a scenario where we want to increment the batch size; however, the
current batch size is equal to the max and therefore triggers a decrement and
the next iteration increments. The new behavior will be that we don't trigger
this ping pong. With this change, we can track specifically when we reach the
max batch size and only log the warning once. If the batch size drops, and it
later increments, the warning will be logged again but this should be expected.
2023-04-10 16:51:11 -04:00
doupengwei
352d616173 DBZ-6155 Adjust LogMiner batch size based on the default batch size rather than current batch size.
Using current batch size for comparison is wrong in case that when currentScn is topScn as described in DBZ-6155.
In the other case (when topScn is behind currentScn) can eventually lead to this situation.
when topScn would fall behind currentScn more and more as we would compare currentScn - topScn with bigger and bigger number (current batch size).

Comapring with logMiningBatchSizeMin could result in very small window which would mean we will send many small queries instead of several bigger ones during mining.
Therefore reverting back to do the adjustments based on the defaultBatchSize.
2023-04-10 16:51:11 -04:00
harveyyue
c525f34cd0 DBZ-6070 DDL events not stored in schema history topic for excluded tables 2023-04-06 12:10:30 +02:00
Chris Cranford
2ef6bd66e4 DBZ-6273 Fix Infinispan serialization of table names with spaces 2023-04-01 17:04:06 -04:00
Chris Cranford
3bb82d6b73 DBZ-6275 Correctly sync Infinispan cache on event counter reset 2023-04-01 16:37:25 -04:00
Chris Cranford
6419c0e704 DBZ-6274 Fix ClusterLoader deprecation using embedded Infinispan
The embedded Infinipsan configuration used a deprecated index model, and
moved to a non-deprecated model called SIFS using segments.
2023-04-01 15:29:12 -04:00
Chris Cranford
42f375f570 DBZ-6274 Align test configurations for remote Infinispan caches
The "fetch-state" attribute was deprecated and is no longer a valid option
with Infinispan 14, which causes the tests to fail to execute.  Additionally,
the "segmented" attribute must be set to true going forward as the file
store implementation no longer supports non-segmented configurations.
2023-04-01 15:29:12 -04:00
Debezium Builder
5c650fd054 [maven-release-plugin] prepare for next development iteration 2023-03-31 10:00:16 +00:00
Debezium Builder
68ffc4833b [maven-release-plugin] prepare release v2.2.0.Beta1 2023-03-31 10:00:16 +00:00
Jiri Pechanec
04def67900 DBZ-6221 Remove print statements 2023-03-28 14:45:12 +02:00
Chris Cranford
f9bb5eb82f DBZ-6221 Correctly interpret CHARACTER/CHARACTER VARYING data types while streaming 2023-03-28 14:45:12 +02:00
Debezium Builder
55d65e9618 [maven-release-plugin] prepare for next development iteration 2023-03-08 11:38:17 +00:00
Debezium Builder
6d183c3dc1 [maven-release-plugin] prepare release v2.2.0.Alpha3 2023-03-08 11:38:16 +00:00
Jiri Pechanec
f62caf9c83 DBZ-6143 Make tests running with xstream 2023-03-08 09:15:48 +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
Vojtech Juranek
fcb0e77bbb DBZ-3594 Warn when obtaning table schema which should be alread present
We load all the schemas of the captured tables when the connector
starts. If we process a record from a table which schema is not
available, this means we have some bug in the intial schema loading.
Don't fail in such case, but print a warning about that.
2023-02-23 09:26:07 -05:00
Chris Cranford
e320abc834 DBZ-6143 Unify Oracle TIMESTAMP WITH TIME ZONE format
When taking a snapshot, the Oracle connector was converting the TIMESTAMP
WITH TIME ZONE value to GMT and per the documentation, the value should
be emitted in the time zone of the data.

The snapshot emitted value in GMT is temporally accurate, so there is no
data inconsistency, but the emitted format itself was inconsistent when
looking at how the column data was emitted during a snapshot versus in a
streaming event.
2023-02-23 10:43:38 +01:00
Chris Cranford
dd9ca95bec DBZ-6125 Fix potential stale offsets when using PDBs
DBZ-5648 introduced a regression where transaction start, commit, and rollback
events were only being read from within the scope of the configured PDB that
the connector was capturing changes instead of the entire Oracle database.
This can lead to situations where the offsets may not be advanced as quickly
in a low traffic PDB environment, potentially causing stale offsets.
2023-02-20 13:29:11 +01:00
Chris Cranford
a89212efef DBZ-6120 Correctly handle quoting table/schema names 2023-02-20 13:26:49 +01:00
Debezium Builder
2245ceda44 [maven-release-plugin] prepare for next development iteration 2023-02-16 11:28:25 +00:00
Debezium Builder
20f3b16e8a [maven-release-plugin] prepare release v2.2.0.Alpha2 2023-02-16 11:28:25 +00:00
Chris Cranford
58f3770ad1 DBZ-6079 Change query.fetch.size default from 0 to 2000 for Oracle 2023-02-16 08:15:22 +01:00
Chris Cranford
6b40103eaa DBZ-6107 Fix bulk updates when LOB is enabled 2023-02-16 07:29:37 +01:00
Chris Cranford
7cd7cad094 DBZ-6091 Fix SSN NumericOverflow exception 2023-02-14 09:44:21 +01:00
Chris Cranford
0771923416 DBZ-6094 Reduce frequency of "Transaction already processed" debug message 2023-02-14 09:09:44 +01:00
harveyyue
57b902ff8c DBZ-5743 Introduce alternative AVRO_UNICODE mode for field name selector 2023-02-02 13:21:45 +01:00
Debezium Builder
04f5291a2d [maven-release-plugin] prepare for next development iteration 2023-01-19 11:32:10 +00:00
Debezium Builder
027527963e [maven-release-plugin] prepare release v2.2.0.Alpha1 2023-01-19 11:32:10 +00:00
Anil Dasari
e1f9d64fbb DBZ-5852:Snapshotter#snapshotCompleted is invoked regardless of snapshot result 2023-01-19 09:24:02 +01:00
Jiri Pechanec
e8729bb0eb DBZ-5996 Properly handle zoned timestamp width in Oracle 2023-01-18 10:42:36 +01:00
Jiri Pechanec
bcd6787cdc DBZ-6008 Revert "DBZ-3653 Introduce incremental.snapshot.isolation.mode config"
This reverts commit 6d8bcd42fd.
2023-01-17 10:40:20 +01:00
govi20
6d8bcd42fd DBZ-3653 Introduce incremental.snapshot.isolation.mode config 2023-01-11 08:55:33 +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
Chris Cranford
c57338d7c9 DBZ-5907 Fix transaction event undo 2023-01-09 12:43:03 +01:00
Chris Cranford
e7ef0d9b37 DBZ-3866 Add internal read-only LogMiner support 2023-01-05 07:40:37 +01:00
Debezium Builder
cf1720e4cb [maven-release-plugin] prepare for next development iteration 2022-12-22 10:11:54 +00:00
Debezium Builder
b4ea9b46cd [maven-release-plugin] prepare release v2.1.0.Final 2022-12-22 10:11:53 +00:00
Debezium Builder
177a60a9d3 [maven-release-plugin] prepare for next development iteration 2022-12-16 09:33:38 +00:00
Debezium Builder
f805db8c3c [maven-release-plugin] prepare release v2.1.0.Beta1 2022-12-16 09:33:38 +00:00
Jiri Pechanec
97f3edf906 DBZ-5880 Handle null explicitly 2022-12-16 09:24:52 +01:00
Jiri Pechanec
c9fe6d5ef7 DBZ-5880 Removed redundant code 2022-12-16 08:44:54 +01:00
Vojtech Juranek
02705903f1 DBZ-5880 Skip failing intTypes test when run with Apicurio
* Add annotation and jUnit rule for skipping test when it's run against
  Apicurio registry.
* Skip `AbstractOracleDatatypesTest#intTypes` tests which fails with
  Apicurio. Which is partially tests in `OracleNumberNegativeScaleIT`
2022-12-16 08:44:54 +01:00
Vojtech Juranek
56ad55ae7b DBZ-5880 Create converter for numbers with negative scales
Oracle allows the scale to be negatove for `NUMBER` data type.
Conversion of such number to Avro would fail as Avro doesn't allow
negative scales. Provide a converter which converts the number to
zero scale number. For completeness the converter provides also
conversion to other supported types - string and double.

N.B.: if the conversion to Avro fails actually depends on
implementation, e.g. Kafka schema registy allows also negative scales.
2022-12-16 08:44:54 +01:00
Vojtech Juranek
163ea307aa DBZ-5838 Skip Avro validation in tests which fail due to apicurio-registry #2980 2022-12-12 14:44:05 +01:00
Vojtech Juranek
0105823dad DBZ-5838 Start Apicurio registry in its own profile
Oracle build is run differently on internal Jenkins than other
connectors and also Apicurio has to be started in a different way.
2022-12-12 14:44:05 +01:00
Vojtech Juranek
9494552a3a DBZ-5838 Add missing Apicurio converter dependency 2022-12-12 14:44:05 +01:00
Jiri Pechanec
7f17bdfba5 DBZ-2432 Fix formatting 2022-12-08 13:10:26 +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
Vojtech Juranek
e1b65cd6f7 DBZ-5889 Run integration tests in specified order
Run the tests alwyas in thr same order to make it more easy to debug
failures. If needed, the order can be changed (e.g. to `random`) by
overriding propeperty `runOrder`.
2022-12-08 13:00:41 +01:00
Debezium Builder
81896ed334 [maven-release-plugin] prepare for next development iteration 2022-11-30 07:52:24 +00:00
Debezium Builder
1aac97b87c [maven-release-plugin] prepare release v2.1.0.Alpha2 2022-11-30 07:52:23 +00:00
Egyed Tamas
ef6f1caa50 DBZ-5854 Bump Infinispan dependencies' versions. 2022-11-29 16:12:53 -05:00
Chris Cranford
06610a2bf0 DBZ-5850 Fix test OracleConnectorIT shouldIgnoreAllTablesInExcludedSchemas 2022-11-22 11:05:40 +01:00
tooptoop4
4d57765596 DBZ-5833 AbstractLogMinerEventProcessor DEBUG to TRACE loglevel 2022-11-14 09:22:35 -05:00
Debezium Builder
e311dd1a67 [maven-release-plugin] prepare for next development iteration 2022-11-10 13:29:06 +00:00
Debezium Builder
e3bf53440a [maven-release-plugin] prepare release v2.1.0.Alpha1 2022-11-10 13:29:05 +00:00
Chris Cranford
21f870d5db DBZ-5759 Log current active transactions metadata 2022-11-10 07:31:28 +01:00
Chris Cranford
6842f701f1 DBZ-5759 Log online redo log sizes 2022-11-10 07:31:28 +01:00
Chris Cranford
22593e5fe1 DBZ-5648 Move LogMiner RegEx handling into Java 2022-11-10 07:23:52 +01:00
Vojtech Juranek
97138bb3e8 DBZ-5791 Make ORA-01089 retriable based on its message 2022-11-09 10:55:56 -05:00
Vojtech Juranek
96e4326d35 DBZ-2131 Use system property to determine if Apicurio should be used 2022-11-09 08:44:45 +01:00
Vojtech Juranek
df2ad6d3c1 DBZ-2131 Add Apicurion profile for Oracle 2022-11-09 08:44:45 +01:00
Vojtech Juranek
54b5582130 DBZ-2131 Unify intendation in Oracle pom.xml 2022-11-09 08:44:45 +01:00
Chris Cranford
54bde9b3bb DBZ-5773 Correctly discard LOB_ERASE events 2022-11-08 17:37:38 -05:00
Vojtech Juranek
15308b8d78 DBZ-5738 Skip nested tables and their parent tables
Nested tables are currently not supported.
2022-11-08 15:37:26 -05:00
Vojtech Juranek
f347c1c844 DBZ-5626 Don't check ofsset for AWLAYS mode
While `ALWAYS` mode allows also snapshot on schema error, it allows
snapshot also on other ocassions. Don't throw exception when offset
is missing and schema is set to `ALWAYS`.
2022-11-08 11:03:05 -05:00
Vojtech Juranek
28aa715867 DBZ-5626 Do the snapshot also in case of schema history errors
`ALWAYS` should mean always and also this should be in line with Postgres
`ALWAYS` option.
2022-11-03 15:41:29 +01:00
Vojtech Juranek
3fcfd9a0e8 DBZ-5626 Add ALWAYS snapshot mode for Oracle connector
For AWLAYS snapshot mode it's important to obtain up-to-date SCN,
therefore offset, if exists, is ignored during snapshot.
2022-11-03 08:59:27 +01:00
Chris Cranford
993a547c2f DBZ-5756 Add Compression Advisor tables as system-excluded tables 2022-11-02 13:58:25 +01:00
jcechace
6aa7331888 DBZ-5779 Migrated debezium-connector-oracle to AssertJ 2022-11-02 08:50:26 +01:00
Chris Cranford
dc5de5ae87 DBZ-5760 Only log full row data at TRACE level 2022-10-26 08:13:34 +02:00
Chris Cranford
93e4eb0092 DBZ-5482 TransactionBoundaryMode ALL mode more reliable 2022-10-19 13:31:00 +02:00
Chris Cranford
7c07c3faaf DBZ-5682 Allow unique index NULL values in trx reconciliation 2022-10-19 13:28:40 +02:00
Debezium Builder
4d35fb8011 [maven-release-plugin] prepare for next development iteration 2022-10-14 11:26:32 +00:00
Debezium Builder
7bd1551c99 [maven-release-plugin] prepare release v2.0.0.Final 2022-10-14 11:26:32 +00:00
thangdc94
f6be36612f DBZ-5276 Remove redundant import 2022-10-14 08:22:56 +02:00
thangdc94
c53af41deb DBZ-5276 Fix wrong log switching condition 2022-10-14 08:22:56 +02:00
thangdc94
4a9539266d DBZ-5276 Fix Group by condition for thread 2022-10-14 08:22:56 +02:00
thangdc94
d233e969e7 DBZ-5276 Prevent add duplicate log file 2022-10-14 08:22:56 +02:00
Debezium Builder
884254aba1 [maven-release-plugin] prepare for next development iteration 2022-10-07 09:27:52 +00:00
Debezium Builder
a0f3263fa6 [maven-release-plugin] prepare release v2.0.0.CR1 2022-10-07 09:27:51 +00:00
Chris Cranford
8ec0846deb
DBZ-5541 Fix Oracle test compatibility failure 2022-10-05 13:25:08 -04:00
harveyyue
f6b72f060c DBZ-5671 Remove logic name parameter from sub connector config 2022-10-03 11:40:17 -04:00
Vojtech Juranek
97532042b3 DBZ-5657 Allow to use Docker maven plugin external properties
Allow to override Docker maven plugin properties [1] from command line
to be able to change various Docker parameters more easily when starting
the container.

[1] https://dmp.fabric8.io/#combining-property-config
2022-09-29 05:41:09 +02:00