Ema c++ library crashe on failover from ezd to cross_connect.
The failover works fine when failing over from one ezd to another ezd; It also works fine when failing over from one cross-connect to another cross-connect. However, it crashes when it failover from ezd to crossconnect (or vice versa).
FYI, EmaConfig uses ChannelSet with 2 channles; ezd and cross_connect; the Channel configuration for both are identical except the Host.
Attached are config and log files.
following is the stack trace
#0 0x000000000055e59a in thomsonreuters::ema::access::ItemCallbackClient::processStatusMsg(RsslMsg*, RsslReactorChannel*, RsslMsgEvent*) ()
#1 0x000000000055fb3e in thomsonreuters::ema::access::ItemCallbackClient::processCallback(RsslReactor*, RsslReactorChannel*, RsslMsgEvent*) ()
#2 0x00000000005ecadd in _reactorProcessMsg ()
#3 0x00000000005edd60 in _reactorWatchlistMsgCallback ()
#4 0x000000000060dee2 in wlItemRequestSendMsgEvent ()
#5 0x000000000060efa1 in wlItemRequestFindStream ()
#6 0x00000000005fa962 in wlServiceUpdateCallback ()
#7 0x00000000006135c6 in wlscSendUpdatedServiceList.part.10 ()
#8 0x0000000000615831 in wlServiceCacheProcessDirectoryMsg ()
#9 0x000000000060a896 in wlDirectoryProcessProviderMsgEvent ()
#10 0x00000000005fb67c in rsslWatchlistReadMsg ()
#11 0x00000000005edf5c in _reactorDispatchFromChannel ()
#12 0x00000000005efe20 in rsslReactorDispatch ()
#13 0x0000000000573549 in thomsonreuters::ema::access::OmmBaseImpl::rsslReactorDispatchLoop(long long, unsigned int, bool&) ()
#14 0x0000000000573a77 in thomsonreuters::ema::access::OmmBaseImpl::run() ()
#15 0x0000000000498b4a in thomsonreuters::ema::access::Thread::runThread(void*) ()
#16 0x0000003aa5807aa1 in start_thread () from /lib64/libpthread.so.0
#17 0x0000003aa54e8aad in clone () from /lib64/libc.so.6
Best Answer
-
[Summary]
This issue can be replicated in the scenario that EMA failover between servers providing same subscribed service name but different QoS attribute. In this question, it seems that the Traffic Management feature has been enabled on first EZD, so its QoS has been changed to just-in-time conflated instead of realtime.
The Elektron SDK 1.1.0 version provides the fix of this issue.
0
Answers
-
Can you confirm if you are using the latest EMA C++ libraries? If not, do you see the same results?
0 -
I am using the latest version Elektron SDK 1.0.8
0 -
Is it possible that you can replicate the scenario with one of the example EMA C++ applications or one of the tutorials within the Developer portal? Ideally, the engineering teams will want to replicate the issue.
0 -
I took 100__MarketPrice__Streaming and did very minor change to take username, serviceman and ric from the command line. Also, I removed hardcoded host and used the above mentioned config file.
For some reason I am not able to Attach the modified Consumer.cpp;
All the changes are in main function. Which I am rewiring as below.
int main( int argc, char* argv[] )
{
try {
AppClient client;
OmmConsumer consumer( OmmConsumerConfig().username( argv[1] ) );
consumer.registerClient( ReqMsg().serviceName( argv[2] ).name( argv[3] ), client );
sleep( 60000 ); // API calls onRefreshMsg(), onUpdateMsg(), or onStatusMsg()
} catch ( const OmmException& excp ) {
cout << excp << endl;
}
return 0;
}0 -
I'm able to replicate the issue in my environment. My setup TREP has different versions: ads2.4.1 and ads3.0.4. I suspect that it is related to version difference.
I have been trying to create reproduction steps and will escalate the issue to the development.
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 中文论坛