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:
  1. 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
  2. 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.

  3. The next steps depend on the actions that occur at the other participants. Two situations are possible.