IBM 000-8697 Server User Manual


 
Product Environment 9-39
Heuristic Rollback
However, if the coordinator gathers all responses from participants, if at least
one participant reports a heuristic rollback, and at least one reports an
acknowledgment of a commit, the result is referred to as a mixed transaction
result. The following events occur as a consequence:
1. The coordinator writes the following message to its own OnLine
message log. (Refer to page 8-22 for a complete description of the
message.)
Mixed transaction result. (pid=nn user=userid)
The pid value is the user process identification number of the coor-
dinator process. The
user value is the user ID associated with the
coordinator process. Associated with this message are additional
messages that list each of the participant OnLine database servers
that reported a heuristic rollback. The additional messages take the
following form:
Participant database server DBSERVERNAME heuristically
rolled back.
2. The coordinator sends a message to each participant that heuristi-
cally rolled back its piece of work, directing each one to end the
transaction.
3. Each participant writes an ENDTRANS message in its logical log
buffer. (The transaction entry is removed from the shared-memory
transaction table.)
4. The coordinator writes an ENDTRANS message in its logical log
buffer. (The transaction entry is removed from the shared-memory
transaction table.)
5. The coordinator returns error -698 to the application:
-698 Inconsistent transaction. Number and names of servers
rolled back.
Associated with this error message is the list of participant OnLine
database servers that reported a heuristic rollback. If a large number
of OnLine database servers rolled back the transaction, this list could
be truncated. The complete list is always included in the message log
for the coordinator OnLine.
In this situation, use the tblog utility to access the logical log at each participant
OnLine and determine whether or not your database system is consistent. Refer to
page 9-51 for more details about how to determine if your database is
consistent and whether you must perform a manual recovery.