question

Upvotes
Accepted
5 0 1 4

tracking security/stream status

I'm building a real-time application listening tick-by-tick. I'm trying to find out any intra-day issues to my live item streams. For e.g.

1. Symbol status has been changed to not being "open" -- for e.g. halted.

2. Any technical issues because of which my stream is not publishing data

How do I catch these scenarios? Is the OnStatusMsg callback the right thing to use for these kind of issues?

I noticed StatusMsg has an OmmState which itself is a composition of 3 more enums. How can I check OmmState to make sure the stream / security is OK to use?

elektronrefinitiv-realtimeelektron-sdkema-apirrtelektron-message-api
icon clock
10 |1500

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

Upvotes
Accepted
7.6k 15 6 9

@devtrep

For#1. Symbol status has been changed to not being "open" -- for e.g. halted.

what you mean about Symbol status is the information from Exchange/Market such as Trade status "Open" or "Trade Halt", correct?

If it's the case, the information should come with some specific field/fid depending on data specification/Exchange. You have to contact content/data support team to check what fid/field you can used to check the status.

For#2. Any technical issues because of which my stream is not publishing data

How do I catch these scenarios? Is the OnStatusMsg callback the right thing to use for these kind of issues?

Basically a Market Price status message is encoded using StatusMsg and sent by Provider. This message conveys state change information associated with an item stream. When a market data stream state changes, EMA application should process statusMsg it recieved from onStatusMsg() call back to check the OMMState.

There are state change information such as stream state, data state, status code and status text that you can get from OMMState to check the issue and the health of item. You can find more details about enum value from EMA Reference Manual locates in <EMA Install Path>/Ema/Docs/refman/ema/a00064.html#aa0f397a957db7a8586be45196be547b3 or checking OMMState.h from EMA pacakge.

There are some sample scenario such as when the service has gone down and your application stop recieving an update, it may recieve stream state Open but data state is Suspect. It indicates the health of the item is stale or unknown. If the service state is Up again, your applilcation should recieve data as usual and the DataState will change to Ok instead.

For some situation, the Provider server will set status code and status text that represent information about the issue. So your application may need to check OMMState::StatusCode and call OMMState::getStatusText to get more details about the status codes receives from the Provider server.

icon clock
10 |1500

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

Upvotes
5 0 1 4

Thanks @moragodkrit

Looks like StreamState != OpenEnum or DataState != OkEnum represent a technical issue.

Regarding, StatusCode, which Enum value represents no technical issue. Will it be NoneEnum?

icon clock
10 |1500

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

Actually the status code depending on the Provider side set in the response message. But typically you should recieve NoneEnum in case that there is no problem.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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