3.3.4.3 EstablishSession Completes

Upon successful completion the client has established a replicated folder session with the server.

Actions Triggered: The client MUST transition the replicated folder from the Restart session state to the InSession session state. See section 3.3.1.2 for a summary of the replicated folder session state machine.

Following the transition to the InSession replicated folder session state, the client MUST register a request for a version chain vector change notification by calling the RequestVersionVector method and then transition to the Requesting Version Vector replicated folder session state.

Sequencing: A client MUST NOT call the EstablishSession method until it has established an outbound connection with the server for a particular connection by successfully calling the EstablishConnection method. After a connection is established, a client SHOULD call the EstablishSession.

Error Handling: The following table summarizes the set of errors returned by the EstablishSession method that cause a client to behave in specific ways.

Error code

Client response

0x00000000

ERROR_SUCCESS

The client MUST perform the actions listed under the Actions Triggered heading.

0x00002342

FRS_ERROR_CONNECTION_INVALID

The client MUST transition to the Disconnected connection state. The client SHOULD try to re-establish the connection by calling the EstablishConnection method after a time-out interval of its choice.

0x00002375

FRS_ERROR_CONTENTSET_READ_ONLY

 The client MUST remain in the Polling connection state, but SHOULD not call the EstablishSession method again for this replicated folder.

0x000006A4 – 0x00000788

RPC errors

The client MUST transition to the Disconnected connection state. The client SHOULD try to re-establish the connection by calling the EstablishConnection method after a time-out interval of its choice.

All other non-zero error codes

The client MUST remain in the Polling connection state and SHOULD call the EstablishSession method again for this replicated folder, after a time-out interval of its choice.