What is the maximum number of RICs in an EMA batch request?

Hi,

I attempted to implement batch request as it is described in Elektron-SDK/example/Ema/Training/Consumer/300_Series/370__MarketPrice__Batch/Consumer.cpp. What is the maximum number of RICs in a batch request? It looks like the limit is between 6000 and 7000. We have a group of RICs with ~18000 items and I had to break it up 4 batch requests.

Thanks

Best Answer

  • In API, a batch is an array in the element entry. Its limitation is defined by the limitation of array and element entry. In case of a batch request, its array size is limited to around 65535 bytes because it is in the element entry. Therefore the maximum number of item vary on size of a number of character in item name you pass to the array as well.

    Overall size should not over 65535 bytes and I think there is the reason that you get limit between 6000-7000 from your test.

Answers

  • Hi @peter.meszaros

    There is a 65535 byte limit on the size of the ElementList entry that is used when making the Batch request.

    Please refer to the ETAJ_Devguide in the section about ElementList for further details.

    As you may know EMA is a wrapper around the lower level ETA.

    So, the actual number of RICs you can request in a single batch will be determined by the total length of the individual RIC codes.

  • Thanks moragodkrit, Umer.

    Is this limit value can be included from any c++ header file?

  • As far as I understand, we could not change it in EMA header.

  • I do not want to change the value but use it if exist. Instead of hardcoding 65535 in my codebase I would like to write something more elegant, like this:

    if (ricslength > thomsonreuters::ema::access::MaxLength) { ... }

  • I can't find it in the EMA code. In EMA, it is defined as a preprocessor macro.

    #define MAX_UNSIGNED_INT16		0xFFFF

    You can raise this concern via the Elektron-SDK GitHub.