RDF/IMP and IMPX System Management Manual (RDF 1.3+)

Network Transactions
Compaq NonStop™ RDF/IMP and IMPX System Management Manual522204-001
13-10
The Effects of Undoing Network Transactions
outcome of T
12
and therefore must be undone. Thus, both network and business
consistency are maintained.
T
13
does not, however, have to be undone even though it committed on \A after T
12
.
Why? Because the purger on \X (the network master) determines that, although T
13
followed T
12
on \A, the sequence for these two commits had to have been reversed on
\B, where the commit for T
13
preceded the commit for T
12
. Therefore, the purger
determines that these two transactions could not have touched the same data, and T
13
does not need to be undone.
This illustrates a very important point. With network transactions, the commit sequence
of network transactions may differ from one node to another, depending on where the
transactions originated. For example, consider two network transactions: T
101
and T
102
.
Assume T
101
originated on \M and T
102
originated on \N. Assume further that they
altered data on both \M and \N, and committed at the same time. The commit operation
for T
101
is coordinated by the TMP on \M because that is where T
101
originated;
similarly, T
102
is coordinated by the TMP on \N because that is where T
102
originated.
Thus, on \M, the sequence of commit records on the audit trail will likely be T
101
followed by T
102
, whereas on \N it will likely be T
102
followed by T
101
.
Note, for the following two reasons, that we can be certain T
101
and T
102
did not alter
the same data:
1. Transaction record locking would have prevented these transactions from altering
the same data.
2. The commit sequence on \M being T
101
followed by T
102
and the commit sequence
on \N being T
102
followed by T
101
unequivocably means that these two transactions
were active at the same time and committed at the same time. Therefore they could
not have altered the same data.
If we return to the issue of T
13
in the example further above, note that the commit
sequence differs on \A and \B. When the purger on \A determines that T
12
, T
14
, and T
15
must be undone, it also determines that the results of T
13
can be kept intact because T
13
had to have completed on \B before T
12
. Why? The commit records on \A guarantee
that both T
12
and T
13
did indeed commit. Therefore, although the commit record for
T
12
is missing from \B, the commit record for T
13
is present. This guarantees that T
13
committed prior to T
12
, and that the results of T
13
can be kept intact on both nodes.
When a purger determines that it can keep the results of a transaction even though that
transaction follows one that must be undone because data for it is missing elsewhere, the
purger logs an RDF 823 event message identifying the particular transaction.
Note. If you have local transactions that do not touch data involved in network transaction
activity, and you do not want these local transactions undone just because data might be
missing for the network transactions during a takeover operation, you are advised to configure
separate RDF subsystems: one to protect just the data involved in network transaction activity,
and the second to protect the non-network data. Of course, both sets of data must have no
dependencies on the other.