Heuristic rollback

You can determine the specific database server participants affected by a heuristic decision to roll back a transaction in the following ways:
  • Examine the return code from the COMMIT WORK statement in the application.
    The following message indicates that one of the participants performed a heuristic rollback:
    -698 Inconsistent transaction. Number and names of servers rolled back. 
  • Examine the messages in the database server message-log file.
    If a database inconsistency is possible because of a heuristic decision at a participating database server, the following message is in the database server message-log file of the coordinator:
    Mixed transaction result. (pid=nn user=user_id)

    This message is written whenever error -698 is returned. Associated with this message is a list of the participant database servers where the transaction was rolled back. This is the complete list. The list that is created with the -698 error message might be truncated if many participants rolled back the transaction.

  • Examine the logical log for each participant.

    If at least one participant rolls back its piece of work and one participant commits its piece of work, the transaction is implemented incorrectly.