Discover Refinitiv
MyRefinitiv Refinitiv Perspectives Careers
Created with Sketch.
All APIs Questions & Answers  Register |  Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • Elektron /
  • EMA /
avatar image
Question by ahmire.kailer · Jul 09, 2020 at 02:22 PM · emajava

Does EMA API provide a mechanism to reduce the impact of making many subscriptions in quick succession?

I need to subscribe to numerous items using EMA Java API, doing this quickly would impact other connections/clients, what's the best way to reduce the impact? Adding sleep between subscriptions is one solution, is there another way?

People who like this

0 Show 0
Comment
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

5 Replies

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by Gurpreet · Jul 09, 2020 at 02:48 PM

Hi @ahmire.kailer, Pacing the subscriptions in the code is the only mechanism - EMA does not provide any other means.

If you need to subscribe to whole bunch of instruments at once, then please look into the Batch subscriptions. Here is an article showing how to use this feature.

Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
Answer by ahmire.kailer · Jul 09, 2020 at 03:37 PM

Hi @Gurpreet.

Thank you for your answer. Am I right in thinking that a single batch request would have very little impact on other streams/clients even if the batch consists of many instruments (e.g. 200k instruments)?

What does the handle returned by registerClient() correspond to when a batch request is used? How do I get the handles for individual instruments? Can I get them in the same thread instead of the callback/dispatch thread?

I had a look at example370__MarketPrice__Batch, it shows how to registerClient(), I'd like to know how to unregister() individual instruments.

Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
Answer by ahmire.kailer · Jul 09, 2020 at 04:31 PM

Hi @Gurpreet.

It looks like batch request doesn't support closure objects for individual instruments, right?

Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
REFINITIV
Answer by Gurpreet · Jul 09, 2020 at 05:48 PM

If the batch size is large, it is bound to impact other open streams since the network is getting flooded with new request/responses. This will all depend on the market state and how volatile subscribed instruments are. Once the items are subscribed in the batch, they can still be individually closed. Batch Stream will be closed automatically after server receives a batch request. Consumer application will receive item response on individual streams. To remove subscription for an item, the application needs to get handle of item stream via OmmConsumerEvent,handle() in onRefreshMsg(), and then use the handle in the OmmConsumer.unregister() method.

EMA developer guide which is included with ESDK package has more information on the batch.

Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
REFINITIV
Answer by wasin.waeosri · Jul 10, 2020 at 10:39 AM

Hello @ahmire.kailer

The application may implement a subscription throttle in the application level to not send all item request messages to the API in the same time. For example,

  • the application may send a smaller number of items in multiple batch requests instead of all items in one batch
  • the application may not send the next batch request until all responses of the previous batch request are received
  • Or the application uses a timer to send each batch request


Comment
SupDev1

People who like this

1 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

Watch this question

Add to watch list
Add to your watch list to receive emailed updates for this question. Too many emails? Change your settings >
10 People are following this question.

Related Questions

EMA java maven project setup

Missing SETTLE field

Requesting and reading illogical FIDs

EMA Java API: Getting hundreds of "Received an item event without user specified pointer or stream info" errors

CLOSE_DATE and OPEN_DATE

  • Feedback
  • Copyright
  • Cookie Policy
  • Privacy Statement
  • Terms of Use
  • Careers
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Alpha
  • App Studio
  • Block Chain
  • Bot Platform
  • Calais
  • Connected Risk APIs
  • DSS
  • Data Fusion
  • Data Model Discovery
  • Datastream
  • Eikon COM
  • Eikon Data APIs
  • Electronic Trading
    • Generic FIX
    • Local Bank Node API
    • Trading API
  • Elektron
    • EMA
    • ETA
    • WebSocket API
  • Legal One
  • Messenger Bot
  • Messenger Side by Side
  • ONESOURCE
    • Indirect Tax
  • Open PermID
    • Entity Search
  • Org ID
  • PAM
    • PAM - Logging
  • ProView
  • ProView Internal
  • Product Insight
  • Project Tracking
  • Refinitiv Data Platform
    • Refinitiv Data Platform Libraries
  • Rose's Space
  • Screening
    • Qual-ID API
    • Screening Deployed
    • Screening Online
    • World-Check One
    • World-Check One Zero Footprint
  • Side by Side Integration API
  • TR Knowledge Graph
  • TREP APIs
    • CAT
    • DACS Station
    • Open DACS
    • RFA
    • UPA
  • TREP Infrastructure
  • TRIT
  • TRKD
  • TRTH
  • Thomson One Smart
  • Transactions
    • REDI API
  • Velocity Analytics
  • Wealth Management Web Services
  • World-Check Data File
  • Explore
  • Tags
  • Questions
  • Badges