3.3.7.2 Process Error
The Process Error event MUST be signaled with the following argument:
A TIP connection object.
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:
Set the State field of the provided TIP connection object to Error.
Notify the higher-layer business logic that the Pull request failed.
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 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.