To
review
the implication of MODE QUIESCE let us look at the following situation.
CASE
1
Let us
assume that there are two active transactions (Unit of Recoveries) A
and B
Running in our system while we issue the ARCHIVE LOG command with out
MODE
QUIESCE. Let us further assume that UOR A and UOR B are both actively
changing
the data and will not commit till some future times T1 and T2
respectively.
In
this
scenario, if we issue an ARCHIVE LOG command at time T0, then the
following
actions are taken.
It
should
be evident by now that the log we just archived does not contain all
the
relevant records that pertain to UOW A and UOW B. If this log is used
at the DR
site, then we will end up with 2 in-doubt Unit of Works. This is
because DB2
does not know if these two transactions Committed or Rolled back or how
many
records they changed before doing so.
Case
2
Let us
assume that there are two active transactions (Unit of Recoveries) A
and B
Running in our system while we issue the ARCHIVE LOG command with MODE
QUIESCE.
Let us further assume that UOR A and UOR B are both actively changing
the data
and will not commit till some future times T1 and T2 respectively.
In
this
scenario, if we issue an ARCHIVE LOG MODE(QUIESCE) command
at time T0, then the following actions
are taken.
It
should
be evident by now that the log we just archived will contain all the
relevant
records that pertain to UOW A and UOW B. If this log is used at the DR
site,
then we can successfully recover to a consistent point in time because
the
archived log DOES NOT CONTAIN ANY INCOMPLETE UOWs.