The lifetime of a result typically is limited as the management of the results is consuming resources of the Server. When using the Methods GetResultById, GetLatestResult or GetResultIdListFiltered, the Client can provide a timer how long it requests the retrieved results to be available, and receives a handle it can use to call the ReleaseResultHandle Method in order to hint to the Server, that the result is not required by the Client anymore. The mechanism is intended to secure the read process of results and not to lock a specific result for a longer time. There is no guarantee that the Server will keep the result until the RelaseResultHandle is called or the timeout is reached. The strategy of the Server is vendor-specific. A Server may, for example, stop producing new results when the old results should still be kept, or remove old results anyhow. A Server may remove results as soon as one Client has received the result data, or keep the results for a specific time since many Clients may need to access the result data.
Note: Since there is no guaranteed storage time even a Server without the capability to store more than one result locally can use this mechanism.
The handle and timeout are of specific importance when the result contains a ResultFile, or when the GetResultIdListFiltered was called and not all returned ResultIds have been received via the GetResultById Method.