Propagation
Process
A single source queue may propagate events
to multiple destination queues, and a single destination queue
may receive events from multiple source queues. However, only
one propagation is allowed between a particular source queue and
a particular destination queue. A single queue may be a
destination queue for some propagations and a source queue for
other propagations.
Propagation Rules
The Propagation process also follows user
defined rules. Rules control those events which need to be
propagated and those which need to be discarded. These rules are
defined at three levels: Table, Schema and Global:
-
A Table rule propagates or discards either
row changes resulting from DML changes or DDL changes to a
particular table. Subset rules are table rules that include a
subset of the row changes to a particular table.
-
A Schema rule propagates or discards either
row changes resulting from DML changes or DDL changes to the
database objects in a particular schema.
-
A Global rule propagates or discards either
all row changes resulting from DML changes or all DDL changes in
the source queue.
When a particular captured change is
configured for propagation to multiple destinations with
relevant Apply processes, the staged event remains at the source
queue until all the configured destination queues receive the
events. When all destination queues receive and acknowledge, the
source event is dropped successfully.
Prior to propagation, all the events are
buffered into buffered queues which reside partly in the SGA and
partly in the queue table. The buffering of events helps
optimize the Propagation process.