Product Environment 9-43
Two-Phase Commit Protocol Errors
Two-Phase Commit Protocol Errors
Three two-phase commit protocol errors require special attention from the
administrator:
■ -698 Inconsistent transaction ...
■ -699 Transaction heuristically rolled back
■ -716 Possible inconsistent transaction
If you receive either error -698 or -699, a heuristic rollback has occurred. If
you receive error -698, read the discussion pertaining to “Situation 2” on
page 9-39 for an explanation of how the inconsistent transaction developed
and to learn the options available to you. If you receive error -699, read the
discussion pertaining to “Situation 1” on page 9-38.
If you decide to kill a coordinator database server process after the coordi-
nator has issued its final decision to “commit,” error -716 might be written to
the OnLine message log:
-716 Possible inconsistent transaction. Unknown servers are
<DBSERVERNAME> <DBSERVERNAME> ...
Your action creates the following problem: if a participating OnLine database
server does not receive the final decision from the coordinator (perhaps
because the participant is down), the participant begins to poll the coordi-
nator OnLine for instructions.
If the coordinator database server process has been terminated, the inquiring
participant OnLine receivesa message stating that the transaction in question
is unknown. Underthe presumed-abort optimization, theparticipant OnLine
interprets this lack of information as an instruction to roll back its piece of
work. If, in fact, the final decision was “commit,” your database system could
become inconsistent.
Warning: Any time that you end a transaction at the coordinator OnLine with
tbmode -z or tbmode -Z after the two-phase commit decision is made, it becomes
your responsibility to determine whether your database system is consistent. You are
strongly advised to avoid this action.