question

Upvotes
Accepted
22 2 2 9

Ability for a consumer to identify if prices published by a provider are stale

Using EMA, is there a mechanism for a market data consumer to identify if prices being published by providers are stale due to an issue faced by the provider or any other reason?

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvote
Accepted
1.5k 3 5 7

In addition to the answer already provided there are two additional points to note:

  • There isn't exactly a state called "stale", but there's a data state called "SUSPECT" and this is what you are looking for. SUSPECT is actually a much better word. In most cases you'll experience that an item in this state has stopped updating (meaning it is stale in the true meaning of the word) but this may not be the case. SUSPECT simply means there's currently something wrong with the item, not necessarily that it is no longer updating.
  • State is something you'll need to keep track of yourself on a per-item basis as each UPDATE message doesn't come with its own state. As with everything else in TREP you'll only see messages if something is actually changing. This is also true for State.

Lars

Addicticks

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvote
9.5k 10 5 7

When a market data stream state changes e.g. suspect/stale due to the provider goes down. EMA consumer will receive status messages at the callback method named onStatusMsg(...).of OmmConsumerClient interface. The example source code implementing the onStatusMsg(..) in EMA Java Consumer application

public void onStatusMsg(StatusMsg statusMsg, OmmConsumerEvent event) 
{
System.out.println("Item Name: " + (statusMsg.hasName() ? statusMsg.name() : "<not set>"));
System.out.println("Service Name: " + (statusMsg.hasServiceName() ? statusMsg.serviceName() : "<not set>"));


if (statusMsg.hasState())
	System.out.println("Item State: " +statusMsg.state());
		
System.out.println();

}

The example output when the provider goes down, EMA application will receive a status message:

Item Name: IBM.N

Service Name: API_NEON_NI

Item State: Open / Suspect / None / 'A23: Service has gone down. Will recall when service becomes available.'

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea