I have been following this tutorial: https://developers.refinitiv.com/en/api-catalog/refinitiv-real-time-opnsrc/rt-sdk-java#ema-consumer-posting-data-to-contribution-channel
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>