Blocking OmmConsumer and OmmProvider (Non-Interactive) constructors
The constructor of the OmmConsumer and OmmProvider (Non-Interactive) classes do not return before an initial RTDS connection is established or the specified timeout value expires.
a, The LoginRequestTimeOut parameter is set to zero.
In this case the constructor of the OmmConsumer / OmmProvider classes block until the initial connection was established.
b, The LoginRequestTimeOut parameter is unequal to zero
In this case constructor of the OmmConsumer and OmmProvider classes throw an exception - OmmInvalidUsageException', Text='login failed (timed out after waiting 45000 milliseconds) - if the initial connection cannot be established within the specified timeout value.
In case of RTDS connection issues, this causes a detrimental effect on the application’s responsiveness.
A possible solution could be to create the OmmConsumer / OmmProvider class in a dedicated thread. However, in case of connection issues it is not possible to gracefully stop this thread before the OmmConsumer / OmmProvider constructor returns.
Could you please advise on how to handle the blocking behavior of the EMA constructors while enabling timely processing requests from other interfaces used by the application?
Best Answer
-
Thank you for reaching out to us.
I quickly checked the code and found that it could be the design of the EMA API. The applicaiton should connect and login to the server before using the OmmConsumer.
Yes, you are correct. EMA is thead-safe so it can be used in multi-threaded environments. However, other EMA interaces may be locked while the OmmConsumer is connecting to the server.
To confirm or change the internal implmentataion of EMA API, please contact the API support team directly via Contact Premium Support. However, you need to be an RDC (Refinitiv Developer Connect) named user in order to access the API support service.
0
Categories
- All Categories
- 6 AHS
- 37 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛