Note: Cache requests may be flow controlled if the underlying transport is flow controlled. The transport is considered flow controlled if the library is unable to write to transport device (for example, the TCP socket is full), or if there are more than 1000 session requests (ICacheSession.SendCacheRequest(...) + ISession.SendRequest(...)) outstanding. This will cause ICacheSession.SendCacheRequest(...) to block if the session property, SendBlocking is enabled. If SendBlocking is disabled and it is not possible to write the cache request to the underlying transport, SOLCLIENT_WOULD_BLOCK is returned.
Cached messages received in response to the cache request are delivered to the application through the usual receive message callback delegate as the messages arrive.
ReturnCode SendCacheRequest(
long requestId,
ITopic topic,
bool subscribe,
CacheLiveDataAction liveDataAction,
EventHandler<CacheRequestEventArgs> cacheRequestListener
)
OperationErrorException | Thrown when the operation fails, see ErrorInfo for specific failure reason |
ObjectDisposedException | Thrown when the session is already disposed (terminal state). |
FatalErrorException | Thrown when an unrecoverable error occurs. |
ArgumentNullException | If any of the required arguments is null. |
ArgumentOutOfRangeException | If any of the arguments is out of range. |