Informix Error -716
-716 Possible inconsistent transaction. Unknown servers are server-name-list.
This message appears after an administrator ends a coordinator database server process, thread, or session using tbmode -z or onmode -z any time after the coordinator issues its decision either to commit or roll back a two-phase commit transaction. You must examine the message log or the logical log at each of the database servers for which the status is listed as unknown to determine whether the local transaction was committed or rolled back. If some participating database servers rolled back the transaction, and others committed it, you must determine whether your networked database system is in an inconsistent state. This procedure is described in detail in your Administrator's Guide.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-716 fires when an administrator forcibly ends a coordinator database server's process, thread,
or session (via tbmode -z/onmode -z) at some point after the coordinator has already decided
to commit or roll back a two-phase-commit transaction, but before that decision was confirmed
propagated to every participant — per the official guidance, the listed servers' actual outcome
for this transaction is genuinely unknown from the coordinator's perspective at this point.
- An administrator running
tbmode -z/onmode -zagainst the coordinator after it issued its commit/rollback decision but before all participants confirmed receiving it — per the official guidance, the direct, only cause. - A network or timing issue coinciding with the forced termination, preventing the coordinator from confirming which participants actually received and applied its decision before it was terminated.
Solutions / Resolution
- Examine the message log or logical log at each database server listed as "unknown", per the official guidance, to determine whether that server's local transaction was actually committed or rolled back.
- Determine whether the networked database system is in an inconsistent state, per the official guidance, if some participants rolled back while others committed — the same class of investigation as -698.
- Follow the detailed procedure in the Administrator's Guide, per the official guidance, for reconciling a confirmed inconsistency — the exact steps depend on IBM/HCL's documented distributed-transaction recovery procedure for the specific server version in use.
Examples
Checking each unknown-status server's log
$ tail -500 /path/to/server_x/online.log
Review each server named in the "unknown servers" list for its actual local outcome on the specific transaction.
Diagnostic Checks
- Review the message log/logical log at every server listed as unknown, per the official guidance, to determine each one's actual committed/rolled-back status.
- Cross-reference outcomes across all participants to determine whether the transaction is genuinely inconsistent, the same investigation as -698.
Related Errors / Related Topics
- -698 — "Inconsistent transaction. Number and names of servers rolled back - servers." A related, more direct signal of a confirmed mixed outcome, versus -716's "unknown" status caused by a forced termination during the decision propagation.
- -699 — "Transaction heuristically rolled back." A related outcome that, unlike -698/-716, is confirmed consistent (uniform rollback) and needs no reconciliation.
Caused specifically by an administrator forcibly ending the coordinator mid-decision — examine each "unknown" server's own log to determine its actual outcome, following the Administrator's Guide's reconciliation procedure if an inconsistency is confirmed.