3.8.5.1.2.1.2 Receiving a PARTNERTM_BRANCH_MTAG_BRANCH_LOG_FULL, PARTNERTM_BRANCH_MTAG_BRANCH_NO_MEM, PARTNERTM_BRANCH_MTAG_BRANCH_TOO_LATE, PARTNERTM_BRANCH_MTAG_BRANCH_TOO_MANY, or PARTNERTM_BRANCH_MTAG_BRANCH_TX_NOT_FOUND Message

When the Subordinate Transaction Manager Facet (section 1.3.3.3.5) receives one of these messages, the Subordinate Transaction Manager Facet MUST perform the following actions:

  • If the connection state is Awaiting Branch Response:

    • Create an Enlistment object with a reference to the Subordinate Transaction Manager Facet, a reference to this connection, and a reference to the transaction object referenced by this connection.

    • Signal the Branch Transaction Failure event on the Core Transaction Manager Facet with the following arguments:

      • The Enlistment object.

      • The failure code that matches the incoming message:

        • PARTNERTM_BRANCH_MTAG_BRANCH_LOG_FULL: Log Full Remote

        • PARTNERTM_BRANCH_MTAG_BRANCH_NO_MEM: No Mem Remote

        • PARTNERTM_BRANCH_MTAG_BRANCH_TOO_LATE: Too Late

        • PARTNERTM_BRANCH_MTAG_BRANCH_TOO_MANY: Too Many Remote

        • PARTNERTM_BRANCH_MTAG_BRANCH_TX_NOT_FOUND: Tx Not Found

    • Set the connection state to Ended.

  • Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.