runInXaTransaction<T extends Object> abstract method

Future<Result<T>> runInXaTransaction<T extends Object>(
  1. String connectionId,
  2. Xid xid,
  3. Future<Result<T>> action(
    1. XaTransactionHandle xa
    ), {
  4. bool onePhase = false,
})

Runs action inside a distributed XA / 2PC branch on connectionId.

Two-phase (default): xa_startactionxa_endxa_preparexa_commit_prepared. Set onePhase to use xa_commit_one_phase after action instead (single-RM shortcut only).

action returning Failure triggers best-effort rollback; thrown exceptions are converted to QueryError and also roll back, matching runInTransaction.

Implementation

Future<Result<T>> runInXaTransaction<T extends Object>(
  String connectionId,
  Xid xid,
  Future<Result<T>> Function(XaTransactionHandle xa) action, {
  bool onePhase = false,
});