Hoi to program an NIP to accept multiple ADH/ADS connections using EMA
Hi team,
Can you advice on the following on behalf of a client please:
There are 2 ADH servers that should work in hot-standby mode. NIP application creates a provider and establishes a channel to ADH to publish data to cache. This part works well. The question is if connection to 2 ADHs should be created by establishing 2 different channels from 1 provider or there should be 2 different providers with 1 channel on each?
I have attached the java class responsible for connecting the publisher to RTDS. Most interesting is the below code which shows how we connect. I think we should attach this code and the class to the request to Reuthers so they have some background knowledge.
OmmNiProviderConfig config = EmaFactory.createOmmNiProviderConfig()
.host(configuration.getHost())
.username(configuration.getUsername())
.instanceId(configuration.getInstance())
.adminControlDirectory(OmmNiProviderConfig.AdminControl.USER_CONTROL);
provider = EmaFactory.createOmmProvider(config, this.providerErrorClient);
provider.registerClient(EmaFactory.createReqMsg().domainType(EmaRdm.MMT_LOGIN), providerClient);
providerClient.awaitServiceRegistration(TIMEOUT);
Regards,
Erol
Best Answer
-
If I understand the customer correctly, the ChannelSet facility I mentioned above does just that. They use a ChannelSet with 2 or more ADH hostnames in their configuration and the API will try to connect to the next one in the list if one server goes down during runtime or is not available at application startup.
However, this would not be hot-standby as there would a timeout period for the loss of existing connection to register before the API would try the other server in the list. They could try reducing the Ping Time out in the config to minimise the downtime.
However, if they want a better standby type facility they should create multiple OMMProviders publishing to multiple ADH and let the ADHs handle the switchover behaviour etc.
0
Answers
-
Hi @erol.komac
Please expand on what the client means by 'establishing 2 different channels from 1 provider'?
AFAIK, each OmmProvider instance can only have 1 active channel at one time. Perhaps the customer has read the section in the docs related to ChannelSets where you can specify multiple Channels in a ChannelSet?
The list of Channels in a ChannelSet is only used in case of initial connection failure, subsequent disconnect - extract from the EMA Config Guide:
ChannelSet : Specifies a comma-separated set of channel names. Each channel name must have a corresponding <Channel> entry in the ChannelGroup. In the event of a reconnection,Channels in the set are tried until a successful connection is made.
0 -
Hi Umar
Please see the response from the client (Nordea) here, and thanks for your help.
Hi Hans,
We are fine by having just one active channel at a time. We want failover to work though so that if one TREP server goes down the application will connect to the other one.
Do you have a code example of how to do this?
Venlig hilsen
Martin Eriksen
Developer0
Categories
- All Categories
- 6 AHS
- 37 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
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛