runInXaTransaction<T extends Object> method

  1. @override
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,
})
override

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

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