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>