RFA timestamp flow

I am currently looking at timestamp flow, ie exchange time -> trep capture time -> rfa api receive time -> feedhandler time -> db time. I am told trep doesn't tag a timestamp on receipt of a message, but as for the rest, what fields should I use? Does the RFA api provide the ability to timestamp a message on receipt?
Best Answer
-
Hi @sohagan857
In terms of Exchange time stamp, There are some commonly used fields like TIM_ACT_MS, TRDTIM_MS, QUOTIM_MS etc. However, the actual fields used and format varies depending on the exchange + asset class etc - since we are dependent on what the exchange supplies to us. So, this is something you would need to check with the Content helpdesk based on your requirements.
In terms of timing the TREP related latency, I recommend you use the sink_driven_src and rmdstestclient to test different scenarios. The sink_driven_src can inject timestamps into the data it publishes which can be then consumed with rmdstestclient to extract the timestamp to determine the latency. This is described briefly in the Tuning Guide section 4.7.2
You can download the above as part of the TREP Infrastructure tools from here under ELEKTRON SDK - TOOLS.
0
Answers
-
Hi @sohagan857, Any of the _MS fields will provide the millisecond resolution like TRDTIM_MS, QUOTIM_MS etc. There are populated by the exchange or data provider. The API does not record any timestamp. If you are interested in profiling the latency, see the ```PerfExamples/Consumer``` packaged with RFA SDK examples.
0 -
Thank you Umer. I'd prefer nanos, or the most amount of precision per exhange. Would TIMACT be suffice? It states "time" type, but I don't what that means, as 'time' can be of many formats. Do you know what time's format is?
I notice TIMACT_NS, QUOTIM_NS but not TRDTIM_NS too, any reason for the omission of nanos for trade time?
0 -
Hi @sohagan857
As mentioned above, we can only publish what each exchange/venue provides us with. So, if they don't provide MS or NS we can't publish it.
Whilst we have defined the _NS fields , where present, they may well only contain MS precision - if that is all we get from the exchange.
As per my earlier reply, I recommend you create a Content type ticket so that the relevant Data Content expert can assist you better - in terms of what is available for your exchange/venue of interest etc.
0 -
Ok understood. What format is TIMACT? I can understand it's whatever the exchange gives but it must get normalised. It's off length 5 and doesn't detail if it is formatted into seconds/millis/nanks, or even what timezone it is. Would you know the details behind TIMACT?
0 -
Hi @sohagan857
Assuming you are making an RSSL type connection and using OMM Data, then a TIME field data is binary encoded and is 5 bytes in length.
When decoding the data, you would check the field type of each field before using the appropriate methods to extract individual elements of the time such as getMinute(), getHour(), getSecond() etc.
The above is demonstrated in our examples and explained in our Developer guides.
In terms of your question about TIMACT - for a few RICs I tried (e.g. EUR=,GBP=,) only contained Hours and Minutes. However, for other exchanges/venues the field may well contain seconds also - again this is something best discussed with the content team. These forums are best suited to API Programming type questions.
Timezone is generally UTC/GMT - the Content helpdesk can confirm if this the case for you exchanges/venues / Fields in question.
0 -
Hello @sohagan857
If you enable RFA Java trace log, you can see received messages with their timestamp when RFA Java received them. For example:
To enable the log file, at the RSSL connection node configuration, please set ipcTraceFlags = 7 and specify logFileName to any filename or
“console” like an example below:The default location of log file
is in the application run directory.0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 684 Datastream
- 1.4K DSS
- 615 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 250 ETA
- 555 WebSocket API
- 37 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 643 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 193 TREP Infrastructure
- 228 TRKD
- 915 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛