3.3.5.3.7 Connection Disconnected

When a CONNTYPE_XAUSER_XACT_OPEN (section 2.2.4.5) connection is disconnected, the XA Superior Transaction Manager MUST perform the following actions:

  • If the State field of the receiving connection is set to Awaiting Open Response:

    • Disconnect the receiving Connection.

    • Return XA_RBCOMMFAIL from the originating XA call.

  • If the State field of the receiving connection is set to Awaiting Prepare Response:

    • Set the State field of the XA Transaction object to Complete.

    • Disconnect the receiving Connection.

    • Remove the XA Transaction object from the XA Transaction Table referenced by the Parent XA Superior Proxy object referenced by the XA Transaction object.

    • Return XA_RBCOMMFAIL from xa_prepare call.

  • If the State field of the receiving connection is set to Awaiting Commit Response:

    • Set the State field of the XA Transaction object to Complete.

    • Disconnect the receiving Connection.

    • Remove the XA Transaction object from the XA Transaction Table referenced by the Parent XA Superior Proxy object referenced by the XA Transaction object.

    • SHOULD return XAER_RMFAIL from xa_commit call.<41>

  • If the State field of the receiving connection is set to Awaiting Abort Response:

    • Set the State field of the XA Transaction object to Complete.

    • Disconnect receiving Connection.

    • Remove the XA Transaction object from the XA Transaction Table referenced by the Parent XA Superior Proxy object referenced by the XA Transaction object.

    • SHOULD return XAER_RMFAIL from xa_rollback call.<42>

Show: