3.3.7.2 Process Error

The Process Error event MUST be signaled with the following argument:

If the Process Error event is signaled, the TIP subordinate transaction manager facet (section 1.3.1.2.2) MUST perform the following actions:

  • If the Connection Type field of the provided TIP connection object is set to Primary:

    • If the State field of the provided TIP connection object is set to Idle Pull:

    • Otherwise, if the State field of the provided TIP connection object is set to Idle Query:

      • Reset the TIP connection referenced by the enlistment object referenced by the provided TIP connection object.

      • Create a query timer (section 3.3.2.1) with the following arguments:

        • The enlistment object referenced by the provided TIP connection object.

        • An implementation-specific timer value.

  • Otherwise, if the Connection Type field of the provided TIP connection object is set to Secondary:

    • If the State field of the provided TIP connection object is set to either Initial or Idle or Initial Identify:

      • Set the State field of the provided TIP connection object to Error.

    • Otherwise, if the State field of the provided TIP connection object is set to Enlisted:

      • Set the State field of the provided TIP connection object to Error.

    • Signal the Begin Rollback event on the core transaction manager facet with the following argument:

      • The transaction object referenced by the enlistment object referenced by the provided TIP connection object.

    • Otherwise, if the State field of the provided TIP connection object is set to Prepared:

      • Reset the TIP connection referenced by the enlistment object referenced by the provided TIP connection object.

      • Create a query timer (section 3.3.2.1) with the following arguments:

        • The enlistment object referenced by the provided TIP connection object.

        • An implementation-specific timer value.

    • Otherwise, if the State field of the provided TIP connection object is set to Aborted:

      • Set the State field of the provided TIP connection object to Error.