View Issue Details

IDProjectCategoryView StatusLast Update
0004289SymmetricDSBugpublic2020-03-25 08:27
Reporterstvje1Assigned Toelong 
Priorityhigh 
Status assignedResolutionopen 
Product Version3.11.2 
Target Version3.11.8Fixed in Version 
Summary0004289: Oracle: rebuilding triggers can result in changed data not being captured
DescriptionSynchronizing triggers on Oracle consists of two steps:
1. drop trigger
2. create or replace trigger

This approach creates a timeslot without triggers, which means that changes to the source data will not be caputured during this timeslot.

Solution:
On Oracle the drop trigger step is not needed - just go directly to create or replace.
The create or replace action places an exclusive lock on the table while executing, ensuring that no data can be changed until the new trigger is in place and thereby ensuring that all data changes are captured by either the old version or the new version of the trigger.
Steps To ReproduceCreate a workload that changes source data.
While the workload is running rebuild the triggers.
Additional InformationAs the below log snip illustrates it is still possible to change the source data while the triggers get dropped and recreated:
2020-02-24 15:06:01,029 INFO [hq-000] [TriggerRouterService] [background-refresher-2] Synchronizing triggers for ORDERS
2020-02-24 15:06:01,573 INFO [hq-000] [OracleSymmetricDialect] [background-refresher-2] Creating ORDERS_SYM_INS_TRG trigger for ORDERS
2020-02-24 15:06:03,309 INFO [hq-000] [RouterService] [hq-000-job-10] Routed 2 data events in 23 ms
2020-02-24 15:06:03,628 INFO [hq-000] [OracleSymmetricDialect] [background-refresher-2] Creating ORDERS_SYM_UPD_TRG trigger for ORDERS
2020-02-24 15:06:03,985 INFO [hq-000] [OracleSymmetricDialect] [background-refresher-2] Creating ORDERS_SYM_DEL_TRG trigger for ORDERS
2020-02-24 15:06:04,181 INFO [hq-000] [TriggerRouterService] [background-refresher-2] Done synchronizing triggers for ORDERS
Tagsdialect: oracle, trigger

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2020-02-25 10:31 stvje1 New Issue
2020-02-25 10:31 stvje1 Tag Attached: trigger
2020-03-11 08:39 elong Tag Attached: dialect: oracle
2020-03-25 08:27 elong Assigned To => elong
2020-03-25 08:27 elong Status new => assigned
2020-03-25 08:27 elong Target Version => 3.11.8