3.3.4.9 Initiating Transaction Rollback

If the higher-layer business logic initiates the rollback of an existing transaction, the application MUST perform the following steps:

  • Find a CONNTYPE_TXUSER_PROMOTE, CONNTYPE_TXUSER_BEGIN2, CONNTYPE_TXUSER_BEGINNER, CONNTYPE_TXUSER_IMPORT2, or CONNTYPE_TXUSER_IMPORT connection in the transaction connection list.

  • If a CONNTYPE_TXUSER_PROMOTE is found:

    • The application MUST attempt to roll back a transaction by using CONNTYPE_TXUSER_PROMOTE.

  • Otherwise, if a CONNTYPE_TXUSER_BEGIN2 is found:

    • The application MUST attempt to roll back a transaction by using CONNTYPE_TXUSER_BEGIN2.

  • Otherwise, if a CONNTYPE_TXUSER_BEGINNER is found:

    • The application MUST attempt to roll back a transaction by using CONNTYPE_TXUSER_BEGINNER.

  • Otherwise, if a CONNTYPE_TXUSER_IMPORT2 is found:

    • The application MUST attempt to roll back a transaction by using CONNTYPE_TXUSER_IMPORT2.

  • Otherwise, if a CONNTYPE_TXUSER_IMPORT is found:

    • The application MUST attempt to roll back a transaction by using CONNTYPE_TXUSER_IMPORT.

  • Otherwise, the application MUST return a failure result to the higher-layer business logic.