Package io.debezium.connector.oracle.olr
Class OpenLogReplicatorStreamingChangeEventSource
java.lang.Object
io.debezium.connector.oracle.olr.OpenLogReplicatorStreamingChangeEventSource
- All Implemented Interfaces:
ChangeEventSource,StreamingChangeEventSource<OraclePartition,OracleOffsetContext>
public class OpenLogReplicatorStreamingChangeEventSource
extends Object
implements StreamingChangeEventSource<OraclePartition,OracleOffsetContext>
An implementation of
StreamingChangeEventSource based on OpenLogReplicator.- Author:
- Chris Cranford
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.debezium.pipeline.source.spi.ChangeEventSource
ChangeEventSource.ChangeEventSourceContext -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate OlrNetworkClientprivate final Clockprivate final OracleConnectorConfigprivate final EventDispatcher<OraclePartition,TableId> private final ErrorHandlerprivate final OracleConnectionprivate longprivate Scnprivate static final org.slf4j.Loggerprivate OracleOffsetContextprivate OraclePartitionprivate final OracleDatabaseSchemaprivate final OpenLogReplicatorStreamingChangeEventSourceMetricsprivate boolean -
Constructor Summary
ConstructorsConstructorDescriptionOpenLogReplicatorStreamingChangeEventSource(OracleConnectorConfig connectorConfig, OracleConnection connection, EventDispatcher<OraclePartition, TableId> dispatcher, ErrorHandler errorHandler, Clock clock, OracleDatabaseSchema schema, OpenLogReplicatorStreamingChangeEventSourceMetrics streamingMetrics) -
Method Summary
Modifier and TypeMethodDescriptionvoidcommitOffset(Map<String, ?> partition, Map<String, ?> offset) private voidprivate OracleOffsetContextvoidexecute(ChangeEventSource.ChangeEventSourceContext context, OraclePartition partition, OracleOffsetContext offsetContext) voidinit(OracleOffsetContext offsetContext) private booleanisTableSqlStatement(String sqlStatement) private voidonBeginEvent(StreamingEvent event) private voidonCheckpointEvent(StreamingEvent event) private voidonCommitEvent(StreamingEvent event) private voidonEvent(StreamingEvent event) private voidonMutationEvent(StreamingEvent event, AbstractMutationEvent mutationEvent) private voidonSchemaChangeEvent(StreamingEvent event, SchemaChangeEvent schemaEvent) potentiallyEmitSchemaChangeForUnknownTable(PayloadEvent.Type eventType, TableId tableId) private voidprocessTruncateEvent(StreamingEvent event, SchemaChangeEvent ddlEvent) private ObjectresolveColumnValue(TableId tableId, Column column, Values values) private Object[]toColumnValuesArray(Table table, Values values) private voidupdateCheckpoint(StreamingEvent event) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.debezium.pipeline.source.spi.StreamingChangeEventSource
executeIteration
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
connectorConfig
-
jdbcConnection
-
dispatcher
-
errorHandler
-
clock
-
schema
-
streamingMetrics
-
client
-
partition
-
offsetContext
-
transactionEvents
private boolean transactionEvents -
lastCheckpointScn
-
lastCheckpointIndex
private long lastCheckpointIndex
-
-
Constructor Details
-
OpenLogReplicatorStreamingChangeEventSource
public OpenLogReplicatorStreamingChangeEventSource(OracleConnectorConfig connectorConfig, OracleConnection connection, EventDispatcher<OraclePartition, TableId> dispatcher, ErrorHandler errorHandler, Clock clock, OracleDatabaseSchema schema, OpenLogReplicatorStreamingChangeEventSourceMetrics streamingMetrics)
-
-
Method Details
-
init
- Specified by:
initin interfaceStreamingChangeEventSource<OraclePartition,OracleOffsetContext> - Throws:
InterruptedException
-
getOffsetContext
- Specified by:
getOffsetContextin interfaceStreamingChangeEventSource<OraclePartition,OracleOffsetContext>
-
emptyContext
-
execute
public void execute(ChangeEventSource.ChangeEventSourceContext context, OraclePartition partition, OracleOffsetContext offsetContext) throws InterruptedException - Specified by:
executein interfaceStreamingChangeEventSource<OraclePartition,OracleOffsetContext> - Throws:
InterruptedException
-
commitOffset
- Specified by:
commitOffsetin interfaceStreamingChangeEventSource<OraclePartition,OracleOffsetContext>
-
confirmLastCheckpointScn
private void confirmLastCheckpointScn() -
onEvent
- Throws:
Exception
-
onBeginEvent
-
onCommitEvent
- Throws:
InterruptedException
-
onCheckpointEvent
- Throws:
InterruptedException
-
onMutationEvent
private void onMutationEvent(StreamingEvent event, AbstractMutationEvent mutationEvent) throws Exception - Throws:
Exception
-
onSchemaChangeEvent
private void onSchemaChangeEvent(StreamingEvent event, SchemaChangeEvent schemaEvent) throws Exception - Throws:
Exception
-
isTableSqlStatement
-
toColumnValuesArray
-
potentiallyEmitSchemaChangeForUnknownTable
private Optional<Table> potentiallyEmitSchemaChangeForUnknownTable(PayloadEvent.Type eventType, TableId tableId) throws Exception - Throws:
Exception
-
processTruncateEvent
private void processTruncateEvent(StreamingEvent event, SchemaChangeEvent ddlEvent) throws InterruptedException - Throws:
InterruptedException
-
resolveColumnValue
-
updateCheckpoint
-