ETA Consumer - Posting data to Contribution Channel (sample) doesn't work
It' has been a long time that I've been trying run ETA RCC, because EMA RCC isn't able to contribute more than one RIC at time.
I downloaded ETA RCC sample (va-consumerc-ontribution.zip) and I've gotten to build without errors, just to you know I follow the bellow steps:
- I edited CMakeLists.txt from Application folder (/Real-Time-SDK/Cpp-C/Eta/Applications/CMakeLists.txt) accordingly readme file in sample folder.
- Due to ETA RCC sample doesn't have its own CMakeLists.txt, I've had to copy one from VAConsumer sample and apply small changes on file in order to build ETA RCC sample.
Bellow you're going to see the error when I run ETA RCC sample (VAConsumerContribution):
sh-4.2# ./VAConsumerContribution -tcp contrib1-emea1.platform.refinitiv.com:443 -uname GE-A-01329598-3-3580 -trceUser GE-A-01329598-3-3580 -trcePass <MY_OBFUSCATE_PASSWORD> -trcePostItem NTC010131=REUL -tunnel
Connections:
contrib1-emea1.platform.refinitiv.com:443
Contribution Channel Details:
tunnel: TRUE
trceUser: GE-A-01329598-3-3580
trcePass: <MY_OBFUSCATE_PASSWORD>
trcePostItem: NTC010131=REUL
Adding connection to contrib1-emea1.platform.refinitiv.com:443...
Connection up! Channel fd=7
Connection down, reconnecting. Channel fd=7
Error text: </opt/refinitiv/Real-Time-SDK/Cpp-C/Eta/Impl/Transport/rsslSocketTransportImpl.c:678> Error:1002 ipcRead() failure. Connection reset by peer
Connection up! Channel fd=7
Connection down, reconnecting. Channel fd=7
Error text: </opt/refinitiv/Real-Time-SDK/Cpp-C/Eta/Impl/Transport/rsslSocketTransportImpl.c:678> Error:1002 ipcRead() failure. Connection reset by peer
Do you know how I could overcome that issue? I've also run VAConsumer with the same access point and it ran normally. You may see bellow:
sh-4.2# ./VAConsumer -encrypted contrib1-amers1.platform.refinitiv.com:443 DDS_TRCE -uname GE-A-01329598-3-3580 -passwd <MY_OBFUSCATE_PASSWORD> -tunnel -offpost
Connections:
contrib1-amers1.platform.refinitiv.com:443 DDS_TRCE
MarketPriceItems:
MarketByOrderItems:
MarketByPriceItems:
YieldCurveItems:
MarketPriceItems (Private Stream):
MarketByOrderItems (Private Stream):
MarketByPriceItems (Private Stream):
YieldCurveItems (Private Stream):
Adding connection to contrib1-amers1.platform.refinitiv.com:443...
Connection up! Channel fd=7
Received Login Response
State: Open/Ok/None - text: ""
Received Source Directory Response: State: Open/Ok/None - text: ""
Received serviceName: DDS_TRCE
Service State: Up
Opened Tunnel Stream.
Received RsslTunnelStreamStatusEvent for stream "VAConsumer", with Stream ID 1000 and State: Open/Ok/None - text: ""
SENDING POST WITH MESSAGE:
streamId = 1
postId = 1
seqNum = 1
Segmentation fault
Best Answer
-
I am able to replicate the issue. The code in VAConsumerContribution is quite different from the VAConsumer. Therefore, I have modified it to use the reactorConnectionList instead.
You need to modify the following section in the main function (rsslConsumerContribution.c).
/* Initialize connection options. */
for(i = 0; i < channelCommandCount; ++i)
{
ChannelCommand *pCommand = &chanCommands[i];
RsslReactorConnectOptions *pOpts = &pCommand->cOpts;
RsslReactorConnectInfo *pInfo = &pCommand->cInfo;
pCommand->pRole = (RsslReactorChannelRole*)&consumerRole;
pInfo->rsslConnectOptions.guaranteedOutputBuffers = 500;
pInfo->rsslConnectOptions.majorVersion = RSSL_RWF_MAJOR_VERSION;
pInfo->rsslConnectOptions.minorVersion = RSSL_RWF_MINOR_VERSION;
pInfo->rsslConnectOptions.userSpecPtr = &chanCommands[i];
pInfo->initializationTimeout = 30;
pOpts->reactorConnectionList = pInfo;
pOpts->connectionCount = 1;
pOpts->reconnectAttemptLimit = -1;
pOpts->reconnectMaxDelay = 5000;
pOpts->reconnectMinDelay = 1000;
pInfo->rsslConnectOptions.userSpecPtr = pCommand;
pInfo->rsslConnectOptions.connectionInfo.unified.address = pCommand->hostName;
pInfo->rsslConnectOptions.connectionInfo.unified.serviceName = pCommand->port;
pInfo->rsslConnectOptions.compressionType = RSSL_COMP_NONE;
pInfo->rsslConnectOptions.encryptionOpts.encryptionProtocolFlags = RSSL_ENC_TLSV1_2;
pInfo->rsslConnectOptions.connectionType = RSSL_CONN_TYPE_ENCRYPTED;
}I am not quite sure that you can encode multiple messages into a buffer when using tunnel stream. To encode multiple messages into a buffer, the application needs to get a packed buffer from the transport layer. However, from my checking, the application may not be able to get a packed buffer from the tunnel stream.
RSSL_VA_API RsslBuffer *rsslTunnelStreamGetBuffer(RsslTunnelStream *pTunnel,
RsslTunnelStreamGetBufferOptions *pRsslTunnelStreamGetBufferOptions, RsslErrorInfo *pError);0
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 中文论坛