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