I am using following code to test connect to contrib server to publish data.
This is part of sample I got from a link shared by support team. It is failing at OMM Consumer creation.
Can someone please guide what needs to be corrected here?
Output ::
May 25, 2021 11:16:26 AM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback
SEVERE: loggerMsg
ClientName: ChannelCallbackClient
Severity: Error
Text: Received ChannelDown event on channel Channel_1
Instance Name Consumer_1_1
RsslReactor @6b6776cb
RsslChannel @1863d2fe
Error Id 0
Internal sysError 0
Error Location Reactor.processWorkerEvent
Error text Error - exceeded initialization timeout (5 s)
loggerMsgEnd
login failed (timed out after waiting 45000 milliseconds) for contrib1-emea1.platform.refinitiv.com:443)
Code ::
AppClient appClient = new AppClient();
System.out.println("Starting encrypted connection...");
// Create an OMM consumer
OmmConsumer consumer = EmaFactory.createOmmConsumer(EmaFactory.createOmmConsumerConfig().host("contrib1-emea1.platform.refinitiv.com:443")
.username("xxxxx") //Machine ID shared by Refinitiv
.password("xxxxxx") // password shared by Refinitiv
.tunnelingKeyStoreFile("C:\\Users\\xxxx\\trcc.jks") //generated jks with *.cer file provided by Refinitiv
.tunnelingKeyStorePasswd("xxxxx"));
ClassOfService cos = EmaFactory.createClassOfService()
.authentication(EmaFactory.createCosAuthentication().type(CosAuthentication.CosAuthenticationType.NOT_REQUIRED))
.dataIntegrity(EmaFactory.createCosDataIntegrity().type(CosDataIntegrity.CosDataIntegrityType.RELIABLE))
.flowControl(EmaFactory.createCosFlowControl().type(CosFlowControl.CosFlowControlType.BIDIRECTIONAL).recvWindowSize(1200))
.guarantee(EmaFactory.createCosGuarantee().type(CosGuarantee.CosGuaranteeType.NONE));
System.out.println("Starting tunnel stream...");
EmaConfig.xml ::
<EmaConfig>
<ConsumerGroup>
<!-- DefaultConsumer parameter defines which consumer configuration is used by OmmConsumer -->
<!-- if application does not specify it through OmmConsumerConfig::consumerName() -->
<!-- first consumer on the ConsumerList is a default consumer if this parameter is not specified -->
<DefaultConsumer value="Consumer_1"/>
<ConsumerList>
<Consumer>
<Name value="Consumer_1"/>
<!-- Channel is optional: defaulted to "RSSL_SOCKET + localhost + 14002" -->
<Channel value="Channel_1"/>
<!-- Logger is optional: defaulted to "File + Success" -->
<Logger value="Logger_2"/>
<!-- Dictionary is optional: defaulted to "ChannelDictionary" -->
<Dictionary value="Dictionary_2"/>
<XmlTraceToFile value="1"/>
</Consumer>
<Consumer>
<Name value="Consumer_2"/>
<Channel value="Channel_2"/>
<Logger value="Logger_2"/>
<Dictionary value="Dictionary_2"/>
</Consumer>
</ConsumerList>
</ConsumerGroup>
<ChannelGroup>
<ChannelList>
<Channel>
<Name value="Channel_1"/>
<ChannelType value="ChannelType::RSSL_ENCRYPTED"/>
<!-- CompressionType is optional: defaulted to None -->
<!-- possible values: None, ZLib, LZ4 -->
<CompressionType value="CompressionType::None"/>
<GuaranteedOutputBuffers value="5000"/>
<!-- ConnectionPingTimeout is optional: defaulted to 30000 -->
<ConnectionPingTimeout value="30000"/>
<!-- TcpNodelay is optional: defaulted to 1 -->
<!-- possible values: 1 (tcp_nodelay option set), 0 (tcp_nodelay not set) -->
<TcpNodelay value="1"/>
<Host value="contrib1-emea1.platform.refinitiv.com"/>
<Port value="443"/>
</Channel>
</ChannelList>
</ChannelGroup>
<DictionaryGroup>
<DictionaryList>
<Dictionary>
<Name value="Dictionary_1"/>
<!-- DictionaryType is optional: defaulted to ChannelDictionary" -->
<!-- possible values: FileDictionary, ChannelDictionary -->
<!-- if DictionaryType is set to ChannelDictionary, file names are ignored -->
<DictionaryType value="DictionaryType::ChannelDictionary"/>
</Dictionary>
<!-- <Dictionary>-->
<!-- <Name value="Dictionary_2"/>-->
<!-- <DictionaryType value="DictionaryType::FileDictionary"/>-->
<!-- <!– dictionary names are optional: defaulted to RDMFieldDictionary and enumtype.def –>-->
<!-- <RdmFieldDictionaryFileName value="./RDMFieldDictionary"/>-->
<!-- <EnumTypeDefFileName value="./enumtype.def"/>-->
<!-- </Dictionary>-->
</DictionaryList>
</DictionaryGroup>
</EmaConfig>