How can individual messagges recover in EMA
If consumer receiving refresh or update messages is there way to uniquely identify each message( there is a seqnum field can we use this value for identification). And if there is missing message (gap in sequence numbers) can we request these messages individually, can this kind of scenario happen in API or is it handled by the API and transparent to the consumers.
Best Answer
-
EMA cannot request any
specific data message; it returns the current data when an application subscribes
an item and data occurs after that till the application unsubscribes the item. When this
is missing message due to connection lost, EMA will recover the connection and
re-subscribe items automatically; the application does nothing. Hence, the
application will get the current data after EMA re-establishes the connection
successfully. For example, the connection lost happens at 10.00. During
10.00-10.01, there are 3 data messages e.g. message1, 2 and
3 containing the same fields. EMA can re-establish the connection at 10.01. Hence, the application will
receive the message 3 which are the current value. If message1,2 and 3 containing the different fields(message1-field id 10, message2-field id 20 and messages3-field id 30), EMA returns a message containing message1,2 and 3 which is the current value of each field.0
Answers
-
From the scenario given that you want to get a missing tick in the recent past, it simply means that you just want that historical data again.
As far as I know, it is impossible that Real-time API products such as EMA or RFA request a single update tick for an item because a server sends only latest data to downstream at the first time (refresh) following by updates if it occurs. So, the missing message should be replaced in the server's cache already by recent data.
Besides, if considering the request message header, it does not have a sequence number in it which clearly implies that you can't specify a sequence number with a request message.
The closest scenario that we can imagine for this case is that if the server feed provides Time and Sales (TAS) version of the particular item, you can send a request and specify date and time for the missing message that you are interested in with the item name.
To request TAS data, you can use a prefix small ‘t’ in front of the base RIC to get the trade data within that day. In addition, you can specify a back date (maximum back date is 14 day) and time as well using the following name convention:
-------------------------------------
Time and Sales RIC naming
-------------------------------------
t<BASE_RIC>\[hhmm][-n]
hh – hour
mm – minute
n – day that you want to request in the past
Note:
Data will be shown in SEG_TEXT (FID=258)
PREV_LR (237) and NEXT_LR (238) link to the previous and next record.
Here there are some examples of Time and Sales requests around 7:00AM of 6 July 2016 :
tTRI.N/1000 - trade data of TRI.N before 10:00 of this day.
FIELD_ENTRY 258/SEG_TEXT:
16:02:00.914 56232 40.4500 05JUL 1841878 CLT
15:59:59.851 4000 40.4500 05JUL 1840807
15:59:58.161 61 40.4500 05JUL 1839427 ODDRemark: There was no trading for TRI.N at this moment (it wasn't 10:00), so the server sent the recent occurrences instead.
tTRI.N/1000-1 - trade data of TRI.N before 10:00 of yesterday.
FIELD_ENTRY 258/SEG_TEXT:
09:59:32.943 100 X 40.5900 05JUL 179871 M_SWEEP
09:58:58.501 100 X 40.5700 05JUL 175847 M_SWEEP
09:58:43.189 14 X 40.5600 05JUL 174681 1065In other hand, if the feed doesn't provide TAS version of the particular RIC, the server will send the result as follows:
FIELD_ENTRY 258/SEG_TEXT:
NO LOG FOR THIS INSTRUMENTHowever, there is a concern for TAS because Elektron Feed team plans to release a new Time Series service that provides historical data, so TAS may go obsolete in the future but there is no obvious End of Life date set yet.
0 -
To verify if there is missing message, you may refer to this "How to verify all ticks were captured?" question
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 中文论坛