Help on EMA tutorial please.

Hai.

Im new to Electron SDK and trying to run through the EMA tutorial.

But I get this error

....................................................................................................................................................

2020-02-10 10:07:19.771 SEVERE com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback

loggerMsg

ClientName: ChannelCallbackClient

Severity: Error

Text: Received ChannelDown event on channel Channel

Instance Name EmaConsumer_1

RsslReactor Channel is null

Error Id 0

Internal sysError 0

Error Location Reactor.processWorkerEvent

Error text Reconnection failed: java.nio.channels.UnresolvedAddressException

loggerMsgEnd


login failed (timed out after waiting 45000 milliseconds) for elektron:14002)

...........................................................................................................................................................


Is there a step that Im missing or I need an active OMM provider?

{

OmmConsumer consumer = null;

try

{

AppClient appClient = new AppClient();

OmmConsumerConfig config = EmaFactory.createOmmConsumerConfig();

consumer = EmaFactory.createOmmConsumer(config.host("localhost:14002").username("user"));

ReqMsg reqMsg = EmaFactory.createReqMsg();

consumer.registerClient(reqMsg.serviceName("DIRECT_FEED").name("IBM.N"), appClient);

Thread.sleep(60000); // API calls onRefreshMsg(), onUpdateMsg() and onStatusMsg()

}

catch (InterruptedException | OmmException excp)

{

System.out.println(excp.getMessage());

}

finally

{

if (consumer != null) consumer.uninitialize();

}

}

Best Answer

  • Hi @fikri.rt

    You need a running OMM Provider or RSSL compatible Datafeed such as Advance Distribution Server (ADS) or Elektron Zero Daemon (EZD) or any other datafeed.

    If you just want to test the API, you can use example OMM Provider which located at com.thomsonreuters.ema.examples.training.iprovider.series100.example100__MarketPrice__Streaming package from Elektron SDK.

    So, run the Interactive Provider (listening on TCP 14002 by default)

    run the consumer to connect to Interactive Provider

    consumer = EmaFactory.createOmmConsumer(config.host("localhost:14002").username("user")); 

    Change localhost and 14002 to any appropriate value.

Answers