Connection reset with data contribution tutorial code

I have been following this tutorial: https://developers.thomsonreuters.com/elektron/elektron-sdk-java/learning?content=41885&type=learning_material_item
The code (see below) is essentially a copy from the tutorial. When the code is run, the error below is returned:
Sep 17, 2018 12:43:53 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback
WARNING: loggerMsg
ClientName: ChannelCallbackClient
Severity: Warning
Text: Received ChannelDownReconnecting event on channel Channel_10
RsslReactor Channel is null
Error Id 0
Internal sysError 0
Error Location Reactor.processWorkerEvent
Error text Error initializing channel: errorId=0 text=null
loggerMsgEnd
I tried to diagnose with Wireshark, which shows the connection fails at the TCP level: the server (port 443) actively sends RST.
My first suspicion is firewall rules on the TRCC end. However, after the first RST, it looks like the rest of the connection attempts were ended locally (e.g. from port 63248). So I wonder if it's a coding issue.
The code I am using is as follows.
OmmConsumer consumer = EmaFactory.createOmmConsumer(EmaFactory.createOmmConsumerConfig().tunnelingKeyStoreFile(<keystore-file-name>).tunnelingKeyStorePasswd(<keystore-passwd>));
ClassOfService cos = EmaFactory.createClassOfService().authentication(EmaFactory.createCosAuthentication().type(CosAuthentication.CosAuthenticationType.OMM_LOGIN)).dataIntegrity(EmaFactory.createCosDataIntegrity().type(CosDataIntegrity.CosDataIntegrityType.RELIABLE)).flowControl(EmaFactory.createCosFlowControl().type(CosFlowControl.CosFlowControlType.BIDIRECTIONAL).recvWindowSize(1200)).guarantee(EmaFactory.createCosGuarantee().type(CosGuarantee.CosGuaranteeType.NONE));
TunnelStreamRequest tsr = EmaFactory.createTunnelStreamRequest()
.classOfService(cos)
.domainType(EmaRdm.MMT_SYSTEM)
.name("TUNNEL1")
.serviceName("TEST_SERVICE");
basicConsumer appClient = new basicConsumer();
long tunnelStreamHandle = consumer.registerClient(tsr, appClient );
The channel config in the EmaConfig.xml is as follows.
<ChannelGroup>
<ChannelList>
<Channel>
<Name value="Channel_10"/>
<ChannelType value="ChannelType::RSSL_ENCRYPTED"/>
<GuaranteedOutputBuffers value="5000"/>
<ConnectionPingTimeout value="30000"/>
<TcpNodelay value="1"/>
<Host value="chp02-emea2.thomsonreuters.com"/>
<Port value="443"/>
</Channel>
</ChannelList>
</ChannelGroup>
Best Answer
-
Hi @linmao.song I would recommend that you turn on the JDK network debugging (-Djavax.net.debug=all) to see the reset cause. Also can you verify that DigiCert CA is trusted in your environment.
0
Answers
-
Thanks @Gurpreet The debug flag helped. It turned out to be two issues:
createOmmConsumerConfig().tunnelingKeyStoreFile(<keystore-file-name>)
The specified keystone file couldn't be found. Possibly the relative-path didn't match the code's execution path. Changed to absolute path for now and it seems to work
Second issue: DigiCert's CA wasn't in trust. The TLS negotiation now seems to work after trusting it.
0 -
A follow-up question. After the connection is established, There doesn't appear to be a "status" message.
The logger does show an event "ChannelUp"
Sep 17, 2018 4:27:46 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback
INFO: loggerMsg
ClientName: ChannelCallbackClient
Severity: Info
Text: Received ChannelUp event on channel Channel_10
Instance Name Consumer_1_1
Component Version eta3.1.1.L1.linux.rrg 64-bit Static
loggerMsgEndHowever, apart from this, there isn't other interactions. As a result, the login never happens.
Any ideas how to diagnose
0 -
You will have to provide complete EMA log, config and whatever code you modified.
Are you getting rdmLoginMsgCallback message from EMA?
0 -
@Gurpreet regarding the above login issue, I have just tried the C++ version https://developers.thomsonreuters.com/elektron/elektron-sdk-cc/learning?content=26452&type=learning_material_item . And the result is the same: no Status message, afterwards, a timeout:
Exception Type='OmmInvalidUsageException', Text='dictionary retrieval failed (timed out after waiting 45000 milliseconds) for '
Any ideas what might be the issue?
0 -
@linmao.song The C++ version has to connect to different VIP endpoint based on Windows or Linux version. You should refer to the list of endpoints you received for your account.
0 -
Thanks. Yes, I am connecting to a Linux endpoint, from the Wireshark capture, the TLS negotiation looks good (e.g., I can see the handshake, changecipher, appdata, etc.)
0 -
Code: the only modifications were replacing username/password, keystore location/password.
Logs: happy to provide. The majority is java's SSL dump. Is there a secure/private way to send it to you guys, as the log contains our hostname/address, etc?
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 中文论坛