How to Run Refinitiv Real-Time SDK C/C++ Warm Standby Examples

Jonathan Legrand
LSEG Developer Community
2 min readJan 18, 2023

Find Jirapongse Phuriphanvichai’s full article on the Refinitiv Developer Portal here.

The Refinitiv Real-Time C/C++ SDK version 2.0.4.L1 includes a warm standby feature which allows a consumer to failover to a standby connection in the event that a primary connection fails or a service is down. This feature reduces recovery time and network traffic by not requiring re-subscription of items to the standby server.

There are two types of warm standby modes available: login-based and service-based. Login-based warm standby switches from a primary server to a standby server when the connection is lost, while service-based warm standby switches all subscribed items from a primary service to a standby service when the service is down or the connection is lost. The service-based warm standby mode offers better resiliency than the login-based mode. The Enterprise Message API in the Refinitiv Real-Time C/C++ SDK includes configurations for enabling the warm standby feature, which can be added to the EMA configuration file or programmatically created in an EMA application. The 470_MP_WarmStandby example demonstrates how to use the warm standby feature in EMA by creating connections to an active and standby server and switching between them when necessary. To run the example, users must configure the host and port for the active and standby servers, specify the service name and item name, and choose the warm standby mode. The example will then connect to both servers, send item requests, and retrieve updates from the active server. If the active server connection or service is down, the example will switch to the standby server and continue retrieving updates.

Enterprise Message API Warm Standby Configurations

The Warm Standby is made available in Enterprise Message API via the following configurations.

Enterprise Transport API Warm Standby Settings

In ETA, the Warm Standby feature is implemented at the Value Add Watchlist layer. It provides the RsslReactorWarmStandbyGroup and RsslReactorWarmStandbyServerInfo data structures to create a Warm Standby group and a Warm Standby server information. Then, the RsslReactorWarmStandbyGroup will be assigned to the RsslReactorConnectOptions instance. The following picture shows the relations of ETA data structures that are used to set a warm standby group.

For more information, please refer to the Introduction to Refinitiv Real-Time SDK Warm Standby Feature article.

--

--