question

Upvotes
Accepted
3 0 0 3

Initial image with large number of instruments

A batch request has more than 1000 instruemnts as a stream (intrest after refresh TRUE), the initial request take 30+seconds (initial image) what possibilities are there to improve the performance of the initial request.

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-apijavaOMM
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes
Accepted
20.3k 73 10 20

Hi @niz

Can you confirm if you mean 30+ seconds to receive all Initial images or just the 1st image?

The time taken to receive the responses will depend greatly on a number of factors, for example, your network, the load on the servers you are connecting to, the number of fields in the Initial Image etc.

In terms of improving the performance, a few suggestions which may help:

  • Use a VIEW request to reduce the number of fields and thereby the amount of data being transmitted and processed
  • If you are connecting to an ADS server, you could experiment with two OmmConsumers - each one connecting to different ADS?
  • Try throttling the request into smaller batches - may help the API better balance its processing of incoming and outgoing messages


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes
3 0 0 3

Thanks for the update.

The request is a batchview with bid/ask.The omm consumer instance is new. And the list of instruments could have some invalid ones or some that the user has no dacs permission to, so those will have their stream id, which seems to differ from the handle id returned on the onrefresh will that id be used to close each item? Since there is no need to listen for its updates. Also would the dictionary have an effect based on its type for example minimal.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes
20.3k 73 10 20

Hi @niz

Please see my reply to your other questions which should address some of the points you raise above.

If you are not interested in Updates and only the initial image, then you should set InterestAfterRefresh to false so that the API automatically closes the stream for you, once it has provided the Refresh (or StatusMsg in case of invalid instrument/request)

consumer.registerClient(reqMsg.serviceName("DIRECT_FEED").name("IBM.N")
.interestAfterRefresh(false), appClient)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea