I'm using ETA API version 1.0.8 in Linux and making request in batch mode.
Is there any limit on the number of symbols that can be requested in the batch mode ?
Does the request need to be throttled ? if yes, how ?
Are there any recommended best practices in pacing the batch request to ADS ?
In API, batch is an array in the element entry. Its limitation is defined by the limitation of array and element entry.
An RsslArray currently has a maximum entry count of 65,535. This type has an approximate maximum encoded length of 4 gigabytes but may be limited to 65,535 bytes if housed inside of a container entry
Therefore, it can have a maximum of 65535 items and its array size is limited to 65535 bytes because it is in the element entry.
To use batch request in ETA, you need to make sure that the server supports batch request by verifying the value of SupportBatchRequestselement entry in the login response. The application can use batch request only when the server supports it.
Regarding throttle, if the application requests a lot of items, the requests should be throttled to avoid flooding the network and overloading the connection. Moreover, the throttle should be configurable so its value can be changed according to the network and performance of the application.
RFA (Robust Foundation API) the high level API that uses ETA has two request throttle implementations. The first, a timer throttle, sends requests to the infrastructure at a fixed rate. The second, a count throttle, limits the maximum number of pending requests that have not yet received a refresh. You can apply these mechanisms in your ETA application. For more information, please refer to RFA Developer Guide and RFA Configuration Guide at this link. Please search for throttle.