RTSDK/C++ how to recover from a login, channel or stream down situation

Hi,
We are reading market data using Real-Time Optimized
As per the training code sample, the OmmConsumer object is created and multiple instruments (clients) are registered
The system works well, so we get onRefreshMsg(), or onUpdateMsg() calls with the data
When there is an error in emaLog, e.g.:
loggerMsg
TimeStamp: 12:42:24.241
ClientName: LoginCallbackClient
Severity: Error
Text: RDMLogin stream was closed with status message
<text removed>
State: Closed / Suspect / Internal error from sender / 'Login Denied:Failed to validate sso token'
loggerMsgEnd
Then our system no longer receives any more updates on any of the instruments
How do we check if we have lost the stream or connection?
How do we reconnect?
We have some commented out code in onStatusMsg(), i.e.:
if (statusMsg.hasState() && statusMsg.getState().getStreamState() == OmmState::OpenEnum)
{
}
If this is the right place to check for an error, then how do we recover the login, channel or stream?
Thanks
Best Answer
-
The status message "Closed / Suspect" on a Login stream indicates that a login stream has been closed. A closed login stream also cuts a connection and API will not recover a connection.
The application needs to re-create the OMMConsumer to re-open the login stream to reconnect to the server. For more information, please refer to the following threads:
An RTO account can't be used simultaneously. Please make sure that there is only one application that uses an RTO account.
0
Answers
-
Thank you
Please can you provide me the status enum for which we need to re-open the login stream. Is it a case of catch all?, e.g.:
if (statusMsg.hasState() && statusMsg.getState().getStreamState() != OmmState::OpenEnum)
{
// recreate OmmConsumer and register instruments
}
or do I need to check for the following enums:
ClosedEnum
ChannelUnavailableEnum
LoginClosedEnum
NotOpenEnum
ServiceDownEnum
ServiceUnavailableEnum
Which ones mean the system has disconnected for which we need to re-open the login?
0 -
In this scenario, you need to check the stream state of the Login domain. If the stream state of the Login domain is equal to OmmState::ClosedEnum, the application needs to re-create the OMMConsumer to re-open the login stream to reconnect to the server.
if (statusMsg.getDomainType() == MMT_LOGIN)
{
if (statusMsg.hasState()) {
if (statusMsg.getState().getStreamState() == OmmState::ClosedEnum) {
....
}
}
}
0 -
Also regarding the other enums I mentioned, do we need to do anything with those?
0 -
hi @manjinder.singh ,
afaik, only ClosedEnum should be handled. hope this helps
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 684 Datastream
- 1.4K DSS
- 615 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 250 ETA
- 554 WebSocket API
- 37 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 643 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 26 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 193 TREP Infrastructure
- 228 TRKD
- 915 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛