3.3.1.1 TIP Subordinate Transaction Manager Facet State Transition Table

The following table summarizes the state transitions that are legal to the protocol as seen by the TIP subordinate transaction manager facet (section 1.3.1.2.2). The states are the TIP connection states. The table omits the following transitions:

  • In every state, the TIP subordinate transaction manager facet, acting as a Primary, is allowed to send an ERROR TIP command, which changes the state to Error.

  • In every state, the TIP subordinate transaction manager facet, acting as a Secondary, can receive an ERROR TIP command, which changes the state to Error.

The following events trigger a state transition:

  • A TIP request is sent to the partner transaction manager.

  • A TIP reply is received from the partner transaction manager.

  • A TIP reply is sent to the partner transaction manager in response to a TIP request.

The "<TIP command A> received/<TIP response B> sent" syntax in the table indicates that the facet received <TIP command A> and responded to it with <TIP response B>. The state changes from <current state> to the <next state> when <TIP response B> is sent to the partner transaction manager.

Current state

Event

Next state

Idle

PULL sent.

Idle Pull

Idle Pull

PULLED received.

Enlisted

Idle Pull

NOTPULLED received.

Idle

Idle Pull

ERROR received.

Error

Idle

PUSH received/PUSHED sent.

Enlisted

Idle

PUSH received/ALREADYPUSHED sent.

Idle

Idle

PUSH received/NOTPUSHED sent.

Idle

Idle

PUSH received/ERROR sent.

Error

Idle

QUERY sent.

Idle Query

Idle Query

QUERIEDEXISTS received.

Idle

Idle Query

QUERIEDNOTFOUND received.

Idle

Idle Query

ERROR received.

Error

Idle

RECONNECT received/RECONNECTED sent.

Prepared

Idle

RECONNECT received/NOTRECONNECTED sent.

Idle

Idle

RECONNECT received/ERROR sent.

Error

Enlisted

ABORT received/ABORTED sent.

Idle

Enlisted

ABORT received/ERROR sent.

Error

Enlisted

COMMIT received/ABORTED sent.

Idle

Enlisted

COMMIT received/COMMITTED sent.

Idle

Enlisted

COMMIT received/ERROR sent.

Error

Enlisted

PREPARE received/PREPARED sent.

Prepared

Enlisted

PREPARE received/ABORTED sent.

Idle

Enlisted

PREPARE received/READONLY sent.

Idle

Enlisted

PREPARE received/ERROR sent.

Error

Enlisted

PREPARE received/ERROR sent.

Error

Enlisted

Unilaterally ABORTED event signaled.

Aborted

Prepared

ABORT received/ABORTED sent.

Idle

Prepared

ABORT received/ERROR sent.

Error

Prepared

COMMIT received/COMMITTED sent.

Idle

Prepared

COMMIT received/ERROR sent.

Error

Aborted

ABORT received/ABORTED sent.

Idle

Aborted

COMMIT received/ABORTED sent.

Idle

Aborted

PREPARE received/ABORTED sent.

Idle