3.2.7.21 Export Transaction

The Export Transaction event MUST be signaled with the following arguments:

If the Export Transaction event is signaled, the Core Transaction Manager Facet (section 1.3.3.3.1) MUST perform the following actions:

  • If the transaction state is not Active (section 3.2.1.3.2), or Phase Zero (section 3.2.1.3.3), or Phase Zero Complete (section 3.2.1.3.4):

    • Signal the Export Transaction Failure (section 3.4.7.11) event on the Transaction Manager communicating with an Application  facet with the following arguments:

      • The provided transaction object

      • The Too Late reason code

  • Otherwise, if the Core Transaction Manager Facet.Durable Log is too full (section 3.2.3.2) to accept the provided transaction object:

    • Signal the Export Transaction Failure event on the Transaction Manager Communicating with an Application facet with the following arguments:

      • The provided transaction object

      • The Log Full reason code

  • Otherwise:

    • Compute the number of Enlistment objects in the transaction's Phase One Enlistment list whose Transaction Manager Facet field is the superior transaction manager.

    • If that number is equal to an implementation-specific value that indicates the maximum allowed Transaction Manager enlistments:<28>

      • Signal the Export Transaction Failure event on the Transaction Manager communicating with an Application facet with the following arguments:

        • The provided transaction object

        • The Too Many reason code

    • Otherwise:

      • Signal the Propagate Transaction (section 3.7.7.10) event on the Superior Transaction Manager facet with the following arguments:

        • The provided transaction object

        • The provided Name object