Failed to uninitialize OmmBaseImp(_executor.awaitTermination() timed out)
I have some chain code (using EMA JAVA API with jdk8). After parsing the chain code, there are 30,000 RICS in total. Then I need to subscribe to these 30,000 rics. Since each request can only subscribe to 5,000 rics, I need to do circular subscriptions for these 30,000 rics. For every 5,000 ric processes, my approach is: first register with batch, then get data, and finally call uninitalize () method. In addition, after subscribing, receive data is set for 6 minutes, but in the process of processing, occasionally the following errors will be reported, and some data can not be received. Request help.. Can somebody help?
Best Answer
-
Hi @chenjihui
One possibility for the error is that you are unintializing the OmmConsumer whilst there are still some events in the queue outstanding. You can raise a Premium Support ticket to get this investigated further - as it may require in depth diagnostics.
However, you should not need to uninitialize OmmConsumer between your batches. You can use the same OmmConsumer to request the next batch and only unintialize when you are ready to terminate the application.
Also, if you use snapshot mode, then the API will close the event stream for each RIC once you received the snapshot - so you don't need to unregisterclient for each of the RICs.
If you want to Snapshot 30,000 RICs, I would personally do this in a paced way without using the EMA Batch functionality e.g. request my first 1000-2000 RICS individually and as I start receiving my Snapshot responses, keep track of the number of snapshots I have received. Once I get back 500 snapshots, I would then request my next 500 RICS and so on. These numbers are just suggestions - you may chose to request a larger or smaller number of RICS initially and in subsequent 'batches'.
If you prefer to use the EMA Batch functionality, you could still use a variation of the above e.g. make your 5000 Batch request, and then once you have received e.g. 1000 Snapshots, request your next 1000 RICs and so on....
NOTE that when counting snapshot responses, you should also allow for StatusMsg responses e.g. for Invalid RICs
0
Answers
-
Hi @chenjihui
Can you please provide some additional information so that we can better understand the situation?
Are you getting the above error after you call ommconsumer.uninitialize() or is this before you have called the uninitialize() method? If you are calling unitialize() please explain why you are doing this.
Are you using a single OmmConsumer instance at any one time or multiple?
Are your subscription requests for the RICs snapshot requests (interestAfterRefresh(false)) or streaming request? If you are using streaming request - do you actually need to - as it sounds like you only want snapshot values?
Can you confirm if the problem still occurs if you do not use EMA Batch functionality and just repeatedly call registerClient for each individual RIC - whilst pacing the calls i.e. not calling 5000/30,000 times in a tight loop?
0 -
1.Every iteration I recreate ommconsumer,then use it subscribe to 5000 RICS in batches for six minutes, and then uninitialized ommconsumer.This error usually occurs between loops.
2.I should just need the snapshot value. I'll try the interestAfterRefresh method fix it
3.If I only subscribe to 5000 ric runs once in batch mode, I can collect the data completely without error.
0 -
We optimized the processing time after receiving market data, and this error no longer occurred.
0
Categories
- All Categories
- 6 AHS
- 39 Alpha
- 162 App Studio
- 4 Block Chain
- 5 Bot Platform
- 17 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
- 370 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
- 60 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛