Independent actions that result in heuristic decisions
Some independent actions can develop into heuristic decisions
when both of the following conditions are true:
- The participant database server already sent a can commit message to the coordinator and then rolls back.
- The coordinator's decision is to commit the transaction.
When both conditions are true, the net result is a global transaction that is inconsistently implemented (committed by one or more database servers and rolled back by another). The database becomes inconsistent.
The following two heuristic decisions are possible:
- Heuristic rollback (described in The heuristic rollback scenario)
- Heuristic end transaction (described in The heuristic end-transaction scenario)
After a heuristic rollback or end transaction occurs, you might be required to perform manual recovery, a complex and time-consuming process. you must understand heuristic decisions fully in order to avoid them. Always be wary of running onmode -z or onmode -Z within the context of two-phase commit.