Skip to main content

Signals

A running connector reads commands from its signal topic, cdc.signals.topic (by default the topic prefix followed by .cdc.signals). Signals need cdc.kafka.bootstrap.servers; they do not write to the source database and work in archive-only mode. They are not read in snapshot_only mode.

A signal is a JSON value whose record key is the connector's name (or its topic prefix). Records with any other key are ignored, so one topic can serve several connectors:

kafka-console-producer --bootstrap-server kafka:9092 --topic app.cdc.signals \
--property parse.key=true --property key.separator='|'
orders-cdc|{"id": "s-42", "type": "snapshot", "data": {"tables": ["FREEPDB1.APP.ORDERS"], "predicate": "STATUS <> 'ARCHIVED'"}}
TypeWhat it does
snapshotSnapshots the captured tables in data.tables (PDB.OWNER.TABLE), filtered by the optional SQL condition in data.predicate, while streaming continues. Its records carry source.snapshot incremental. Rejected while another snapshot runs.
snapshot-pauseStops reading new chunks of the running snapshot; streaming continues.
snapshot-resumeResumes a paused snapshot.
snapshot-stopEnds the running snapshot; its unread chunks are not read.
refresh-tablesResolves the include and exclude patterns again before the next mining step.
log-stateWrites the mined-to SCN, the transaction buffer's size and its largest open transactions to the ops topic.

Every signal for the connector ends in a signal-ack event on the ops topic with its id, type and outcome: ok, rejected, unknown, invalid or failed, and a message where there is one. A signal is handled once: the connector's offset records the last handled signal, so a restart reads only later ones. A snapshot started by signal is recorded in the offset as well and resumes after a restart.