Post

0 followers Follow
0
Avatar

Loop Prevention Parameters

Question

What values are valid for the *_LOOP_PREVENTION_* variable? How do I prevent an infinity loop?

Answer

  • Valid values for *_LOOP_PREVENTION parameters are YES and NO.
  • In the basic one-way replication *_LOOP_PREVENTION parameters are not required by Dbvisit Replicate at all.
  • In two-way replication where no change should be propagated further once applied, MINE loop prevention is used whereas APPLY loop prevention does not get invoked.
  • In advanced configurations such as cascading destinations (A -> B -> C), APPLY loop prevention is used and MINE loop prevention is disabled.

APPLY loop prevention can be used in all cases but the disadvantage is that MINE and APPLY have to do more work by processing changes that eventually get skipped later. Therefore, MINE loop prevention is used in some scenarios (i.e two-way) to achieve good replication performance.

Setup wizard sets correct values for *_LOOP_PREVENTION parameters for advance replication automatically. However, for some complex configurations, such as A -> B <=>C <- D where multiple set-up wizards are used, manual setting of *_LOOP_PREVENTION is required. This prevents propagating DMLs further once applied.

Krupesh Desai Answered

Please sign in to leave a comment.