EMA frequent channel down error
Hello,
Please find attached log new 2.txt. Unable to figure out the source of the error, I am subscribing to 3k RIC's using batch request and getting streaming updates. Once I get the updates, I retrieve the ask price and put it on a queue as follows -
public void onRefreshMsg(final RefreshMsg refreshMsg, final OmmConsumerEvent event) {
log.debug("RefreshMsg");
if (refreshMsg.hasName() && (DataType.DataTypes.FIELD_LIST == refreshMsg.payload()
.dataType())) {
Entity entity = new Entity();
entity.setRefreshMsg(refreshMsg);
this.jmsTemplate.convertAndSend(Queues.BATCH_UPDATE, entity);
}
}
public void onUpdateMsg(final UpdateMsg updateMsg, final OmmConsumerEvent event) {
log.debug("updateMsg");
if (updateMsg.hasName() && (DataType.DataTypes.FIELD_LIST == updateMsg.payload()
.dataType())) {
Entity entity = new Entity();
entity.setUpdateMsg(updateMsg);
this.jmsTemplate.convertAndSend(Queues.BATCH_UPDATE, entity);
}
}
I have set Output buffers as below -
innerElementList.add(EmaFactory.createElementEntry()
.intValue("GuaranteedOutputBuffers", 50000));
Best Answer
-
One of the most common causes for Consumer disconnects is a 'Slow Consumer' scenario. Increasing Guaranteed output buffers can only help so far - e.g. for short-lived periods of increased update rates.
If the consumer is processing the updates too slowly, then eventually the buffers on the server you are connecting to will overflow and you would be disconnected.
I cannot tell from the log file, if this is the case here - so you would need to speak to either your internal RTDS team (if you are connecting to an internal ADS) OR our Refinitiv Real-Time Optimized team (if you are connecting to RTO) - so that they can check the logs on the server you are connecting to, to get some clues as to why your consumer is being logged out so often.
If they do confirm that they are seeing buffer overflow scenarios, then you need to modify your code so that less processing is done in the main API thread - the onUpdateMsg and onRefreshMsg callbacks are executed on the main API thread. And the longer you hold onto that thread, the less time the API can spend reading data from the server in a timely manner.
The following article refers to one of our Legacy APIs - however, the same slow consumer scenario could be the case for you and the same solutions could also help you - e.g. worker threads or Horizontal scaling OR a combination of both :
How to Diagnose and Solve Out-of-Memory Issues in RFA Java Applications | Refinitiv DevelopersThe following example included with RT-SDK is a simple demonstration of Horizontal Scaling
RTSDK-JAVA\Java\Ema\Examples\src\main\java\com\refinitiv\ema\examples\training\consumer\series400\ex410_MP_HorizontalScaling
1
Answers
-
Hello @aastha.sharma ,
I would suggest, for the purposes of testing, temporarily, to exclude, by commenting out, all Entity related code and to test if the disconnects continue to happen.
If they do not, this code is likely holding the callback, resulting in slow consumer designation by the infra and the disconnect from the infra.
If they continue to happen without any Entity processing code, I would suggest opening a ticket with Refinitiv infra support, including all the details of the disconnects (specific times), to investigate possible infrastructure causes as well with the local network admin/group, investigating any local network related causes, if you are on RTO connectivity or hosted, that may need to include internet provider originated causes.
Let us know how this works on your side?
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 中文论坛