Share via


3.3.5.9 Client Request Execution State

The TDS server MUST continue to listen for messages from the client while awaiting notification of client request for completion from the upper layer. The TDS server MUST also do one of the following:

  • If the upper layer notifies TDS that the client request has finished successfully, the TDS server MUST send the results in the formats described in section 2 to the TDS client and enter the "Logged In" state.

  • If the upper layer notifies TDS that an error has been encountered during client request, the TDS server MUST send an error message (described in section 2) to the TDS client and enter the "Logged In" state.

  • If an attention packet (described in section 2) is received during the execution of the current client request, it MUST deliver a cancel indication to the upper layer. If an attention packet (described in section 2) is received after the execution of the current client request, it SHOULD NOT deliver a cancel indication to the upper layer because there is no existing execution to cancel. The TDS server MUST send an attention acknowledgment to the TDS client and enter the "Logged In" state.

  • If another client request packet is received during the execution of the current client request, the TDS server SHOULD queue the new client request, and continue processing the client request already in progress according to the preceding rules. When this operation is complete, the TDS server re-enters the "Client Request Execution" state and processes the newly arrived message.

  • If MARS is enabled, all TDS server responses to client request messages MUST be passed through to the SMP layer.

  • If any other message type arrives, the server MUST close the connection and enter the "Final State" state.