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).