xa_start

 

Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista

Called by the XA-based transaction manager or any XA application that performs operations on a SQL Server database by using the XA interfaces, to start work on behalf of a transaction branch.

Implemented by: MSDTC
Object This is a helper function, not a method on an object.
Interface Source N/A
Called by: XA-based transaction manager.

Syntax

  
int __cdecl xa_start  (  __in XID *xid,  int  rmid,  long flags);  

Parameters

xid
[in] Specifics the XA Transaction Branch Identifier. This must be unique.

rmid
[in] Resource Manager ID.

flags
[in] Flags defined in [XAOpen – DTP] Chapter 4.4.

Return Values

Return code defined in Chapter 4.5 of [XAOpen – DTP].

Remarks

Because multiple threads can participate in a transaction branch and because each thread can have multiple invocations, use xa_start to block until the active thread releases control of the transaction branch by calling xa_end. Transaction Managers and ZA applications can only call Resource Managers that do not have TMREGISTER set in the flags element of their xa_switch_t structure.

Requirements

For an explanation of the requirement values, see Requirements (Component Services).

Platforms: Windows Server 2016, Windows 10, Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 8, Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista

Header: Declared in xa.h