Results of a heuristic rollback
These topics describe
what happens at both the coordinator and participant when a heuristic
rollback occurs and how this process can result in an inconsistent
database:
- At the participant database server where the rollback
occurred, a record is placed in the database server logical log (type
HEURTX). Locks and resources held by the transaction are freed. The
participant thread writes the following message in the database server
message log, indicating that a long-transaction condition and rollback
occurred:
Transaction Completed Abnormally (rollback):
tx=address flags=0xnn
- The coordinator issues postdecision phase instructions to commit
the transaction.The participant thread at the database server where the heuristic rollback occurred returns error message -699 to the coordinator as follows:
-699 Transaction heuristically rolled back.
This error message is not returned to the application at this point; it is an internal notification to the coordinator. The coordinator waits until all participants respond to the commit instruction. The coordinator does not determine database consistency until all participants report.
- The next steps depend on the actions that occur at the other participants. Two situations are possible.