The continuationPointparameter in the HistoryRead Serviceis used to mark a point from which to continue the read if not all values could be returned in one response. The value is opaque for the Clientand is only used to maintain the state information for the Serverto continue from. For HistoricalDataNoderequests, a Servermay use the timestamp of the last returned data item if the timestamp is unique. This can reduce the need in the Serverto store state information for the continuation point.
The Clientspecifies the maximum number of results per operation in the request Message. A Servershall not return more than this number of results but it may return fewer results. The Serverallocates a ContinuationPointif there are more results to return. The Servermay return fewer results due to buffer issues or other internal constraints. It may also be required to return a continuationPointdue to HistoryReadparameter constraints. If a request is taking a long time to calculate and is approaching the timeout time, the Servermay return partial results with a continuation point. This may be done if the calculation is going to take more time than the Clienttimeout. In some cases it may take longer than the Clienttimeout to calculate even one result. Then the Servermay return zero results with a continuation point that allows the Serverto resume the calculation on the next Clientread call. For additional discussions regarding ContinuationPointsand HistoryReadplease see the individual extensible HistoryReadDetailsparameter in 6.4.
If the Clientspecifies a ContinuationPoint, then the HistoryReadDetailsparameter and the TimestampsToReturn parameter are ignored, because it does not make sense to request different parameters when continuing from a previous call. It is permissible to change the dataEncodingparameter with each request.
If the releaseContinuationPointsparameter is set in the request the Servershall not return any data and shall release all ContinuationPointspassed in the request. If the ContinuationPointfor an operation is missing or invalid then the StatusCodefor the operation shall be Bad_ContinuationPointInvalid.