3.1.6 Processing Events and Sequencing Rules

When an OleTx connection partner receives an incoming message on a connection, it MUST perform the following actions to verify the validity of the message:

  • Schema validation

    • The participant MUST validate the message content in accord with the message schema and constraints specified in section 2.2 for the specific incoming message type. If a message type is not determinable, the message MUST be considered invalid.

  • State validation

    • The participant MUST verify the current state of the connection by using the State field of the connection as follows:

      • If the connection is in the Ended state, the message MUST be considered invalid.

      • If the connection type has not defined a specific processing rule in section 3 for the processing of the specific message in the current connection state, then the message MUST be considered invalid.

If an incoming message is considered invalid, the participant MUST ignore the contents of the message. Furthermore, the connection on which the message was received MUST transition to the Ended state, and return a failure result to the higher-layer business logic. The participant MAY also tear down the session with which the connection was established.<20>

If the connection type defines specific actions that MUST be performed when an invalid message is received, the connection partner MUST also perform those actions. These actions are specified in the Message Processing Events and Sequencing Rules section that specifies the behavior of the connection type.

The various failure results returned to the higher-layer business logic are implementation-specific. Failure results SHOULD include implementation-specific context around valid error messages and invalid incoming messages.