Configuration Reference
Complete reference of all oracdc connector parameters. See the etc directory in the source repository for sample configuration files.
Mandatory Parameters
a2.jdbc.url
JDBC connection URL. Supported formats:
EZConnect Format:
jdbc:oracle:thin:@[[protocol:]//]host1[,host2,host3][:port1][,host4:port2][/service_name][:server_mode][/instance_name][?connection properties]
TNS URL Format:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=<protocol>)(HOST=<dbhost>)(PORT=<dbport>))(CONNECT_DATA=(SERVICE_NAME=<service-name>)))
TNS Alias Format:
jdbc:oracle:thin:@<alias_name>
For more information see Oracle Database JDBC Java API Reference.
a2.wallet.location
Location of Oracle Wallet / External Password Store. Not required when a2.jdbc.url, a2.jdbc.username, and a2.jdbc.password are set.
a2.jdbc.username
JDBC connection username. Not required when using Oracle Wallet.
a2.jdbc.password
JDBC connection password. Not required when using Oracle Wallet.
Optional Parameters
General Source Connector Parameters
| Parameter | Default | Description |
|---|---|---|
a2.schema.type | kafka | Schema type: kafka (separate key/value), single (all fields in one schema), or debezium (before/after images) |
a2.topic.prefix | (empty) | Prefix prepended to table names for topic generation |
a2.kafka.topic | oracdc-topic | Topic name when using a2.schema.type=debezium |
a2.topic.partition | 0 | Kafka topic partition to write data |
a2.batch.size | 1000 | Maximum rows per poll batch (source) or consume batch (sink) |
a2.poll.interval | 1000 | Interval in ms to poll for new data in each materialized view log |
a2.exclude | (empty) | Comma separated list of tables to exclude. Supports <SCHEMA>.<TABLE> and wildcards (<SCHEMA>.* or <SCHEMA>.%) |
a2.include | (empty) | Comma separated list of tables to include. Same format as a2.exclude |
a2.protobuf.schema.naming | false | When true, generates schema names as valid Protocol Buffers identifiers using underscore separator |
a2.first.change | (not set) | Starting SCN for DBMS_LOGMNR.START_LOGMNR. Overrides stored offset |
a2.tmpdir | java.io.tmpdir | Temporary directory for off-heap storage |
a2.oracdc.schemas | false | Use oracdc's own schemas (OraNumber, OraTimestamp) for Oracle datatypes |
a2.initial.load | IGNORE | Set to EXECUTE to perform initial data load from tables |
a2.topic.name.style | TABLE | Topic naming: TABLE, SCHEMA_TABLE, or PDB_SCHEMA_TABLE |
a2.topic.name.delimiter | _ | Topic name delimiter: _, -, or . |
a2.table.list.style | static | static: reads table list at startup. dynamic: builds list on the fly |
a2.process.lobs | false | Process BLOB, CLOB, NCLOB, XMLTYPE columns |
a2.lob.transformation.class | OraCdcDefaultLobTransformationsImpl | Class implementing OraCdcLobTransformationsIntf for LOB transformation |
a2.connection.backoff | 30000 | Backoff time in ms between reconnection attempts |
a2.use.rac | false | Enable Oracle RAC support. Auto-detects RAC and starts per-thread tasks |
a2.transaction.implementation | ChronicleQueue | Queue implementation: ChronicleQueue (off-heap) or ArrayList (heap). LOBs require ChronicleQueue |
a2.print.invalid.hex.value.warning | false | Print information about invalid hex values in log |
a2.process.online.redo.logs | false | Process online redo logs for minimal latency |
a2.scn.query.interval.ms | 60000 | Minimum interval in ms to determine current SCN during online redo log processing |
a2.tolerate.incomplete.row | false | When true, ignores incomplete redo records instead of stopping |
a2.print.all.online.scn.ranges | true | Print detailed SCN range information for online log processing |
Key Selection Parameters
| Parameter | Default | Description |
|---|---|---|
a2.pk.type | well_defined | well_defined: uses PK or NOT NULL unique key. any_unique: allows nullable unique keys |
a2.use.rowid.as.key | true | When true and no appropriate key exists, uses ROWID as surrogate key |
a2.use.all.columns.on.delete | false | When true, reads all columns from DELETE redo records (not just key columns) |
a2.key.override | (empty) | Per-table key override. Format: OWNER.TABLE=NONE|ROWID|INDEX(INDEX_NAME), comma separated |
Topic Mapping Parameters
| Parameter | Default | Description |
|---|---|---|
a2.topic.mapper | OraCdcDefaultTopicNameMapper | Class implementing TopicNameMapper interface for topic assignment |
a2.stop.on.ora.1284 | true | Stop on ORA-01284 (file cannot be opened). When false, continues with next log |
a2.print.unable.to.delete.warning | false | Print warning about ignored DELETE operations for keyless tables |
a2.schema.name.mapper | OraCdcDefaultSchemaNameMapper | Class for schema name construction |
Pseudo Column Parameters
| Parameter | Default | Description |
|---|---|---|
a2.pseudocolumn.ora_rowscn | (empty) | Field name for row change SCN |
a2.pseudocolumn.ora_commitscn | (empty) | Field name for transaction commit SCN |
a2.pseudocolumn.ora_rowts | (empty) | Field name for row change timestamp |
a2.pseudocolumn.ora_operation | (empty) | Field name for operation type (UPDATE/INSERT/DELETE) |
a2.pseudocolumn.ora_xid | (empty) | Field name for transaction ID (XID) |
a2.pseudocolumn.ora_username | (empty) | Field name for executing user |
a2.pseudocolumn.ora_osusername | (empty) | Field name for OS user |
a2.pseudocolumn.ora_hostname | (empty) | Field name for client hostname |
a2.pseudocolumn.ora_audit_session_id | (empty) | Field name for audit session ID |
a2.pseudocolumn.ora_session_info | (empty) | Field name for database session info |
a2.pseudocolumn.ora_client_id | (empty) | Field name for client identifier |
Sequence Notification Parameters
| Parameter | Default | Description |
|---|---|---|
a2.last.sequence.notifier | (empty) | Class implementing LastProcessedSeqNotifier. Use OraCdcLastProcessedSeqFileNotifier for file-based notification |
a2.last.sequence.notifier.file | ${connectorName}.seq | File name for last processed sequence number |
Performance and Memory Parameters
| Parameter | Default | Description |
|---|---|---|
a2.transactions.threshold | 0 | Max simultaneously processed transactions. Default calculated from vm.max_map_count on Linux, 0x7000 on other platforms |
a2.reduce.load.ms | 60000 | Wait time in ms to reduce concurrent transactions (pauses reading, continues sending) |
a2.array.list.default.capacity | 32 | Initial capacity of ArrayList for transaction data |
a2.ignore.stored.offset | false | When true, ignores stored offset and uses a2.first.change or minimum available SCN |
a2.tables.in.process.size | 256 | Initial size of memory structure for tables being processed |
a2.tables.out.of.scope.size | 1024 | Initial size of memory structure for out-of-scope table IDs |
a2.transactions.in.process.size | 1024 | Initial size of memory structure for current transactions |
a2.emitter.timeout.ms | 21 | Interval in ms for emitter thread to check for new redo records |
a2.offheap.size | HALF-QUARTER | Initial off-heap memory structure size |
NUMBER Type Override
a2.number.map.[PDB_NAME.]SCHEMA_NAME.TABLE_NAME.COL_NAME_OR_PATTERN
Overrides Kafka data type for Oracle NUMBER columns. The % symbol can be used as a wildcard (start or end of column name). Possible values:
BOOL,BOOLEANBYTE,TINYINTSHORT,SMALLINTINT,INTEGERLONG,BIGINTFLOATDOUBLEDECIMAL([P],S),NUMERIC([P],S)
Physical Standby Connection Parameters
| Parameter | Default | Description |
|---|---|---|
a2.standby.activate | false | Enable redo log processing on physical standby |
a2.standby.wallet.location | (empty) | Oracle Wallet location for standby connection |
a2.standby.jdbc.url | (empty) | JDBC URL for physical standby database |
a2.standby.privilege | sysdg | Privilege for standby connection: sysdg, sysbackup, or sysdba |
LogMiner-Specific Parameters
| Parameter | Default | Description |
|---|---|---|
a2.archived.log.catalog | OraCdcV$ArchivedLogImpl | Class implementing OraLogMiner interface |
a2.fetch.size | 32 | Rows fetched per round trip for V$LOGMNR_CONTENTS |
a2.logminer.trace | false | Trace LogMiner calls with event 10046 level 8 |
a2.log.miner.reconnect.ms | Long.MAX_VALUE | Reconnect interval for LogMiner (Unix/Linux only) |
LogMiner Distributed Mode Parameters
| Parameter | Default | Description |
|---|---|---|
a2.distributed.activate | false | Use distributed configuration |
a2.distributed.wallet.location | (empty) | Oracle Wallet for target (mining) database |
a2.distributed.jdbc.url | (empty) | JDBC URL for mining database |
a2.distributed.target.host | (empty) | Hostname of target shipment agent |
a2.distributed.target.port | (empty) | Port of target shipment agent |
RedoMiner-Specific Parameters
Redo File Access
| Parameter | Default | Description |
|---|---|---|
a2.redo.filename.convert | (empty) | Converts redo log path. Format: ORIGINAL_PATH=NEW_PATH |
a2.storage.media | FS | Storage medium: FS, ASM, SSH, SMB, BFILE, or TRANSFER |
ASM Connection
| Parameter | Default | Description |
|---|---|---|
a2.asm.jdbc.url | (empty) | JDBC URL for Oracle ASM instance |
a2.asm.username | (empty) | ASM username (requires SYSASM or SYSDBA) |
a2.asm.password | (empty) | ASM user password |
a2.asm.read.ahead | true | Read data in advance with larger chunks |
a2.asm.reconnect.ms | 604800000 | ASM reconnect interval (1 week) |
a2.asm.privilege | sysasm | ASM connection privilege: sysasm or sysdba |
SSH Connection
| Parameter | Default | Description |
|---|---|---|
a2.ssh.hostname | (empty) | FQDN or IP of remote server |
a2.ssh.port | 22 | SSH port |
a2.ssh.user | (empty) | SSH username |
a2.ssh.private.key | (empty) | Path to SSH private key file |
a2.ssh.password | (empty) | SSH password |
a2.ssh.reconnect.ms | 86400000 | SSH reconnect interval (24h) |
a2.ssh.strict.host.key.checking | false | Enable strict host key checking |
a2.ssh.provider | sshj | SSH library: sshj or maverick |
a2.ssh.max.unconfirmed.reads | 256 | Max unconfirmed SFTP reads (sshj) |
a2.ssh.buffer.size | 32768 | SFTP read-ahead buffer size (sshj) |
SMB Connection
| Parameter | Default | Description |
|---|---|---|
a2.smb.server | (empty) | FQDN or IP of SMB server |
a2.smb.share.online | (empty) | SMB share with online redo logs |
a2.smb.share.archive | (empty) | SMB share with archived redo logs |
a2.smb.user | (empty) | SMB username |
a2.smb.password | (empty) | SMB password |
a2.smb.domain | (empty) | Windows authentication domain |
a2.smb.timeout | 180000 | SMB read timeout in ms |
a2.smb.socket.timeout | 180000 | SMB socket timeout in ms |
a2.smb.reconnect.ms | 86400000 | SMB reconnect interval (24h) |
a2.smb.buffer.size | 1048576 | SMB read-ahead buffer size |
BFILE/TRANSFER Connection
| Parameter | Default | Description |
|---|---|---|
a2.bfile.directory.online | (empty) | Oracle directory for online redo logs |
a2.bfile.directory.archive | (empty) | Oracle directory for archived redo logs |
a2.bfile.reconnect.ms | 3600000 | Oracle Net reconnect interval (1h) |
a2.bfile.buffer.size | 4194304 | BFILE read-ahead buffer size |
a2.transfer.directory.stage | (empty) | Oracle directory for TRANSFER stage storage (must be on file system) |
TDE Encryption
| Parameter | Default | Description |
|---|---|---|
a2.tde.wallet.path | (empty) | Full path to Oracle Wallet file (ewallet.p12) |
a2.tde.wallet.password | (empty) | Oracle Wallet password |
Data Processing
| Parameter | Default | Description |
|---|---|---|
a2.process.all.update.statements | true | When false, ignores no-change UPDATE statements |
a2.unable.to.map.col.id.warning | true | Warn when redo record contains unmapped column ID |
a2.supplemental.logging | ALL | Required supplemental logging level: ALL or NONE |
a2.stop.on.missed.log.file | true | Stop if a redo log file cannot be opened. When false, skips to next file |
Sink Connector Parameters
| Parameter | Default | Description |
|---|---|---|
a2.autocreate | false | Create missing tables automatically |
a2.table.mapper | (empty) | Class for mapping topic names to target table names |
a2.table.name.prefix | (empty) | Prefix for target table names |
a2.table.name.suffix | (empty) | Suffix for target table names |
a2.pk.string.length | (empty) | String length for PK columns |
a2.connection.init.sql | (empty) | SQL executed for all new connections |