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?
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.
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.
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.