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.
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.
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.