3.3.4.1 Beginning a Transaction
If the higher-layer business logic begins a transaction with a predetermined transaction identifier:<29>
If the transaction manager of the application supports the CONNTYPE_TXUSER_PROMOTE (section 2.2.8.1.3) connection type as specified in section 2.2.1.1.1:
The application MUST attempt to begin a transaction by using the CONNTYPE_TXUSER_PROMOTE connection type.
Otherwise:
The application MUST return a Failure result to the higher-layer business logic.
If the higher-layer business logic decides to begin a transaction without using a predetermined transaction identifier, the application MUST perform the following actions:
If the transaction manager supports the CONNTYPE_TXUSER_BEGIN2 (section 2.2.8.1.2) connection type as specified in section 2.2.1.1.1:
The application MUST attempt to begin a transaction by using CONNTYPE_TXUSER_BEGIN2.
Otherwise:
The application MUST attempt to begin a transaction by using CONNTYPE_TXUSER_BEGINNER (section 2.2.8.1.1).