Accessing provider generated timestamps and the role of \Control\MessagePools\OMMItemEventPool\enabl

Hi


I'm sourcing level I (top of book) data from TREP and would like to know the timestamp of the market event that led to each update I receive from TREP. How can I access this provider generated timestamp?

On the event data structure in the .NET api, each ThomsonReuters.RFA.Common.Event has an EventAge property, enabled by the config key

\Control\MessagePools\OMMItemEventPool\enableOMMEventAge

However, this property is often 0 or lower than what I'd expect from network transit delays.

How is the EventAge property defined, and how do I access the provider generated event timestamps?

Sincerely

Anders A. Søndergaard

Best Answer

  • @ansn

    RFA does not provide the time stamp you mentioned. Event in this case is RFA internal event/message. The Event Age is the number of milliseconds since RFA created the Event. The method will return -1 if enableOMMEventAge configuration parameter is false. To enable the functionality, enableOMMEventAge need to be set to true.

    The amount of time returned from the getEventAge method is the time difference between the time when the event is received from the connection and the time when the application calls the method (both at the receiver side). This means the event age is measured from the moment the event is created at the receiver side (e.g. a consumer) rather than the time when the event is created on the sender side (e.g. a provider/TREP). Please note that the enableOMMEventAge parameter of a RSSL connection must be set to true to enable this feature; otherwise, -1 is returned from the methods.

Answers