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.