MRN EMA C++ API sample code with Elektron failover
We have multiple Elektron Edge servers (Primary, Secondary). I have downloaded you EMA API tutorials.
https://developers.thomsonreuters.com/elektron/elektron-sdk-cc/learning?content=8682&type=learning_material_item
https://developers.thomsonreuters.com/system/files/EMA%20Tutorials.zip
In the example it only connects to one Elektron server. It is not up to our standard to fail over from (Primary to Secondary) in case connection failed. Would you give us guidance on how we can add code to implement the failover.
Thanks and best regards,
Xiaowei
Best Answer
-
Refering to EMA CPP Developer Guide document section 2.3 Supported Features, EMA supports Connection Failover.
You can specify a list of failover servers via the ChannelSet configuration. If a
consumer's connection attempt fails, EMA attempts to connect to the next channel in
the ChannelSet list.
You can find details about ChannelSet configuration from EMA Configurtion Guide(EMACPP_ConfigGuide.pdf) locates in < EMA Install Path >/Docs.and below is sample configuration from the document.
<ConsumerGroup>
<ConsumerList>
<Consumer>
<Name value="Consumer_1"/>
<!-- ChannelSet is optional -->
<ChannelSet value="Channel_1, Channel_2"/>
<Logger value="Logger_1"/>
<Dictionary value="Dictionary_1"/>
</Consumer>
</ConsumerList>
</ConsumerGroup>
<ChannelGroup>
<ChannelList>
<Channel>
<Name value="Channel_1"/>
<ChannelType value="ChannelType::RSSL_SOCKET"/>
<Host value="localhost"/>
<Port value="14002"/>
</Channel>
<Channel>
<Name value="Channel_2"/>
<ChannelType value="ChannelType::RSSL_SOCKET"/>
<Host value="122.1.1.100"/>
<Port value="14008"/>
</Channel>
</ChannelList>
</ChannelGroup>0
Answers
-
Hi @xlil997
The tutorials are designed to help a new developer familiarise themselves with the basics of EMA and therefore intentionally simple and should not be used as the basis for any Production application.
My colleague has responded above regarding ChannelSets - you may also wish to refer to my EMA configuration overview article here which includes some notes on ChannelSets.
0
Categories
- All Categories
- 6 AHS
- 39 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 60 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛