Discover Refinitiv
MyRefinitiv Refinitiv Perspectives Careers
Created with Sketch.
All APIs Questions & Answers  Register |  Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • Elektron /
  • EMA /
avatar image
Question by davinb · Sep 28, 2021 at 08:23 PM · refinitiv-realtimeema-apielektron-message-apiOMMrefinitiv-realtime-sdk

EMA Channel failover

Hello,


I have a EMA Consumer based application. I am using a ChannelSet with two channels (two different IP addresses). However, when the first channel in the ChannelSet goes down (I get a 'ChannelDownReconnecting event on channel Channel_1' message, and 'Channel is down', etc), my subscriptions do not automatically failover to the next Channel in the ChannelSet. I'm wondering if this is the expected behaviour, or is the ChannelSet only useful when we make the initial connection? (i.e. detecting if one is down then rather than failover).

There is also an example on doing failover here: https://developers.refinitiv.com/en/article-catalog/article/how-implement-service-resiliency-ema-consumer-application I'm wondering if need to implement similar logic in order for the failover to work.


Thanks!

People who like this

0 Show 0
Comment
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

4 Replies

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by zoya faberov · Sep 29, 2021 at 12:28 AM

Hello @davinb,

Failover to the next channel in ChannelSet should happen, if the initial connection did not succeed or if the established connection is broken. The article referenced discusses how to achieve service resilience, when the channel remains up, however, the service that we require from it goes down.

My thinking is, that if the failover does not seem to happen in a custom consumer, I would run a quick test with a standard example consumer that came with RTSDK, I would use Market Price 110 File Config, pointing it via Consumer configuration at your ChannelSet, I would also make sure to enable Xml tracing.

For example:

<Consumer>
<Name value="Consumer_11"/>

<!-- ChannelSet specifies an ordered list of Channels to which OmmConsumer will attempt to-->
<!-- connect, one at a time, if the previous one fails to connect-->
<ChannelSet value="Channel_12, Channel_13"/>

<Dictionary value="Dictionary_1"/>
<XmlTraceToStdout value="1"/>
</Consumer>

One option to test is to simulate the disconnect by interrupting network connectivity, observing Channel Down and after a short period of time ( 30 sec?) restoring network connectivity. EMA should try reconnecting to the original channel first, and failing that, reconnect to the second channel next, which you should see via tracing enabled. The default behavior of EMA is single-open (see more on single-open in RDM Usage Guide, so once the channel is re-established, the items should be re-subscribed.

If the channel failover and item recovery work as expected with the example consumer and test configuration, the next step could be verifying your custom consumer, to understand why the failover is not happening as expected, by comparing with the working simple example.

Hope this suggestion helps

Comment
wasin.w
mzmuda33

People who like this

2 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
Answer by davinb · Sep 29, 2021 at 01:45 PM

OK, so there is a difference between the Channel and a Service. If I get a message saying 'Service for this item was lost' or 'No matching service present' would the service failover described in the above mentioned example help resolve this ?


Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
REFINITIV
Answer by zoya faberov · Sep 29, 2021 at 07:01 PM

Hello @davinb ,

Yes, they are different, let me try to explain?

Unless the connection is lost, ChannelSet -driven failover will not happen. Only on connection loss EMA will attempt reconnect to the endpoint first, and failing that, attempt the connection (failover) to the next channel that is defined on the ChannelSet.

This is because, in a general case, multiple services can be made available via connectivity endpoint/distribution infrastructure. Therefore, one service being down does not constitute the complete loss of service.

If you require, to force the reconnect to a different endpoint, based on a loss of specific service, this is the case when the article linked would describe how to implement this requirement.

Hope this explanation helps?

Comment
wasin.w

People who like this

1 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
Answer by davinb · Sep 29, 2021 at 09:04 PM

Yes, thank you for the explanation

Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

Watch this question

Add to watch list
Add to your watch list to receive emailed updates for this question. Too many emails? Change your settings >
9 People are following this question.

Related Questions

ERROR: 'Attempt to submit initial RefreshMsg with service name of XYZ that was not included in the SourceDirectory

Invalid attempt to close batch stream. Exception thrown in thomsonreuters::ema::access::OmmInvalidUsageExceptionImpl

Exception Type='OmmInvalidUsageException', Text='Failed to rsslElementEntry.encode() while encoding rssl elementlist. Reason='INVALID_DATA''

how to make EmaFactory to connect with the second host if the first host can not be connected

Initial image with large number of instruments

  • Copyright
  • Cookie Policy
  • Privacy Statement
  • Terms of Use
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Alpha
  • App Studio
  • Block Chain
  • Bot Platform
  • Connected Risk APIs
  • DSS
  • Data Fusion
  • Data Model Discovery
  • Datastream
  • Eikon COM
  • Eikon Data APIs
  • Electronic Trading
    • Generic FIX
    • Local Bank Node API
    • Trading API
  • Elektron
    • EMA
    • ETA
    • WebSocket API
  • Intelligent Tagging
  • Legal One
  • Messenger Bot
  • Messenger Side by Side
  • ONESOURCE
    • Indirect Tax
  • Open Calais
  • Open PermID
    • Entity Search
  • Org ID
  • PAM
    • PAM - Logging
  • ProView
  • ProView Internal
  • Product Insight
  • Project Tracking
  • RDMS
  • Refinitiv Data Platform
    • Refinitiv Data Platform Libraries
  • Rose's Space
  • Screening
    • Qual-ID API
    • Screening Deployed
    • Screening Online
    • World-Check One
    • World-Check One Zero Footprint
  • Side by Side Integration API
  • TR Knowledge Graph
  • TREP APIs
    • CAT
    • DACS Station
    • Open DACS
    • RFA
    • UPA
  • TREP Infrastructure
  • TRKD
  • TRTH
  • Thomson One Smart
  • Transactions
    • REDI API
  • Velocity Analytics
  • Wealth Management Web Services
  • Workspace SDK
    • Element Framework
    • Grid
  • World-Check Data File
  • 中文论坛
  • Explore
  • Tags
  • Questions
  • Badges