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” onpage 9-38.
If you decide to kill a coordinator database server process after the coordi-
natorhas 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> ...
Youraction 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.
Ifthe coordinator database server process has been terminated, the inquiring
participantOnLine receives a message stating that the transaction in question
isunknown. Underthe presumed-abortoptimization, 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 ortbmode -Z after the two-phase commit decision is made, it becomes
yourresponsibility to determine whether your database system is consistent. You are
strongly advised to avoid this action.