3.1.1 Abstract Data Model

The following section specifies data and state maintained by the MSSearch Query Protocol server. The data provided in this document explains how the protocol behaves. This section does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

A query server implementing the MSSearch Query Protocol maintains the following abstract data elements:

  • The list of protocol clients connected to the protocol server.

  • Information about each protocol client, which includes:

    • Protocol client's version (as specified in the CPMConnectIn message.

    • Search catalog associated with the protocol client (by a CPMConnectIn message).

    • Additional client properties as specified in the database properties.

    • Protocol client's search query.

  • List of cursor handles for the search query and position in result set for each handle.

  • Current set of bindings.

  • Current status of the search query which includes (for each cursor):

    • Number of rows in query result.

    • Numerator and denominator of query completion.

  • The current state of the query server, which is one of "not initialized", "running", or "shutting down".

Note that most of the time the protocol server is in "running" state. The following is the state machine diagram for the protocol server.

State machine diagram for the protocol server

Figure 2: State machine diagram for the protocol server