question

Upvotes
Accepted
5 1 1 3

Handling of connection issues within Refinitv Elektron SDK API

We use Refinitv Elektron SDK API (ema.jar, upa.jar, upaValueAdd.jar version 3.5.0.0) to connect to Refinitiv to get market data.

Looking for some insights on how the Refinitv Elektron SDK API library internally handles the following connection event scenarios and what type of login stream events are mapped to these:

Scenario A

Refinitiv servers doesn’t receive any update from TWEB server due to some connection issues. But the ClientComponent (connecting to Refinitiv using Refinitv Elektron SDK API) has an active/healthy connection with the Refinitiv servers. Will information around this error scenario will be supplied to ClientComponent via StatusMsg ? If so what would be that StatusMsg look like ?

Scenario B

Does “Refinitv Elektron SDK API” internally sends some heartbeat messages to the “Refinitiv Servers”. Scenario: If the connection of the “ClientComponent using Elektron SDK API” is active with the “Refinitiv Servers”, but no updates are being received for X time, does the API mark the data as stale (and provide this information to the “ClientComponent”) ?

elektronrefinitiv-realtimeelektron-sdkema-apirrtelektron-message-api
electron.png (5.8 KiB)
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.

Hello @hardeepsangha,

Thank you for your participation in the forum.

Is the reply below satisfactory in resolving your query?

If yes, please click the 'Accept' text next to the appropriate reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.

Thanks,

-AHS

@hardeepsangha

Hi,

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,

AHS

Upvotes
Accepted
32.2k 40 11 20

Hi @hardeepsangha,

Please note, EMA API will fully handle connection maintenance aspect on behalf of the application. The consumer code will not need to take any action on that.

I would not recommend modifying the default, recommended timeout setting. However, it is exposed as Channel -> ConnectionPingTimeout and perhaps InitializationTimeout, please see the descriptions in EMA Configuration Guide, in section Universal Channel Entry Parameters.

If you are looking to re-implement this handling, ETA allows to do so, as Transport tier API, it offers the greatest flexibility but also it requires significantly more effort to complete, on the part of the developer.

You can test this aspect in your local environment, by running one of the simple consumer examples that came with SDK (extending to run longer then standard 90 sec is probably convenient for this purpose), and either plugging out the relevant network connection or disconnecting the relevant WiFi connection.

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
32.2k 40 11 20

Hello @hardeepsangha,

In ETA Java Developer Guide (state and status is conveyed to EMA application), section State please find the relevant information on State. Data state would reflect the disconnect of the publisher/source in this case Trade Web Server, the client/API loosing connection to infra will be reflected in stream state. I.e. if the client/API losses connectivity, we expect open streams such as Login, Dictionary, Channel to be CLOSED. It's preferable to examine state code, rather then text message, as those may change with the versions of the API.

Would like to suggest also reviewing ChannelSet concept in EMA Configuraion Guide. If you have the connectivity to two endpoint and use ChannelSet, EMA will handle the failover on behalf of the consumer app.

Please see Single Open in EMA Developer Guide, it is the default, and handles any subscriptions to items on reconnect, they will be recovered by the 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
5 1 1 3

Hi zoya.farberov ,

Thanks for sharing the information. I read the relevant information around streamState/dataState.

Can you please share some details around "Scenario B". Whether API sends some hearbeats to Refinitiv Servers / what is the frequency of sending heartbeats / what is the configured value of timeouts is ?

I assume that if heartbeats are missed then the streamState will be updated to convey this information.

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
25.3k 87 12 25

Hi @hardeepsangha

You may also find the following article interesting The Mechanics of EMA Connection and Item Recovery | Refinitiv Developers


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.

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.