| Previous | Next |
| ERROR_TRANSACTION_ALREADY_ABORTED | ERROR_TM_INITIALIZATION_FAILED |
ERROR_TRANSACTION_ALREADY_COMMITTED
This result means the transaction already has a committed outcome, so KTM will not accept an additional operation that would alter its protocol state. It is usually evidence of duplicate completion work, a late asynchronous callback, or application code that retained a transaction handle after a successful commit request.
Why a retry is risky
Repeating a side effect merely because this call failed can duplicate work outside KTM's scope. First establish whether the business operation associated with the transaction was committed and whether every resource manager has finished its own completion handling. The status itself does not justify treating the transaction as failed.
Checks that help
- Record the transaction identifier and the original commit request.
- Verify that a completion callback is dispatched once per enlistment and notification.
- Separate the transaction's final outcome from post-commit application tasks, which should use their own retry policy.
- Close or release transaction handles once their owning workflow completes.
See the KTM transaction lifecycle and KTM commit and completion functions.
Looking for a different code? Search another status or error code.