We're migrating from RFA 7.x to RTSDK/EMA (C++) and encountering an issue where we receive only initial RefreshMsg (snapshots) but no subsequent UpdateMsg (streaming updates) during active market hours. |
|---|
|
Configuration: |
* API: RTSDK (EMA C++) |
* Service: hEDD |
* Domain: marketPrice (MMT_MARKET_PRICE) |
* Symbols: 4 |
* Field View: 8 fields (BID=22 |
|
Code: |
``` |
req_msg.serviceName("hEDD") |
.name("AAPL.O") // example |
.interestAfterRefresh(true) // Explicitly request streaming |
.payload(/* field view */); |
``` |
|
What we've verified: |
1. Using .interestAfterRefresh(true) to request streaming (not snapshot-only) |
2. Service directory query shows hEDD supports "RealTime/TickByTick" QoS |
3. RefreshMsg arrives successfully for all symbols with StreamState::OpenEnum and DataState::OkEnum |
4. onUpdateMsg() callback is implemented and logged (never fires) |
5. Testing during active market hours with ultra-high-volume symbols |
|
Our legacy RFA 7.x handlers using the SAME account credentials and SAME service (hEDD) with InterestAfterRefresh = true DO receive streaming UpdateMsg successfully. They've been running in production for years with thousands of updates per second. |
|
``` |
// RFA 7.x configuration (works fine): |
rfa::sessionLayer::OMMItemIntSpec intSpec; |
intSpec.setInterestAfterRefresh(true); |
intSpec.setServiceName("hEDD"); |
// ... receives streaming updates continuously |
``` |
|
Questions: |
1. Are there known behavioral differences between RFA 7.x and RTSDK/EMA when connecting to hEDD service? |
2. Does hEDD require additional subscription parameters in RTSDK/EMA that weren't needed in RFA 7.x? |
3. Could there be account-level settings that enable streaming for RFA but not RTSDK/EMA? |
4. Is there a migration guide covering RFA→RTSDK behavioral differences with hEDD specifically? |
|
Any insights would be greatly appreciated. Since RFA works but EMA doesn't with identical configuration |
|