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
- 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
- 249 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
- 192 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 中文论坛