createOmmConsumer is throwing java exception

I'm making this call

EmaFactory.createOmmConsumer(e.Config.host(hostStr).username(char(username)))

using a valid username, host, and port. I'm connecting to a remote machine (the St. Louis test lab). It was working until this morning. Not sure if the lab is down but anyone know what this exceptoin means:

Java exception occurred: java.lang.AssertionError at com.thomsonreuters.upa.valueadd.domainrep.rdm.dictionary.DictionaryMsgImpl.state(DictionaryMsgImpl.java:264) at com.thomsonreuters.ema.access.ChannelDictionary.processCallback(DictionaryCallbackClient.java:1160) at com.thomsonreuters.ema.access.DictionaryCallbackClient.rdmDictionaryMsgCallback(DictionaryCallbackClient.java:92) at com.thomsonreuters.upa.valueadd.reactor.Reactor.sendDictionaryMsgCallback(Reactor.java:1296) at com.thomsonreuters.upa.valueadd.reactor.Reactor.sendAndHandleDictionaryMsgCallback(Reactor.java:1311) at com.thomsonreuters.upa.valueadd.reactor.WlItemHandler.callbackUser(WlItemHandler.java:2450) at com.thomsonreuters.upa.valueadd.reactor.WlItemHandler.sendStatus(WlItemHandler.java:1476) at com.thomsonreuters.upa.valueadd.reactor.WlItemHandler.requestTimeout(WlItemHandler.java:2879) at com.thomsonreuters.upa.valueadd.reactor.WlStream.timeout(WlStream.java:336) at com.thomsonreuters.upa.valueadd.reactor.Watchlist.timeout(Watchlist.java:314) at com.thomsonreuters.upa.valueadd.reactor.Reactor.processWorkerEvent(Reactor.java:2076) at com.thomsonreuters.upa.valueadd.reactor.Reactor.dispatchChannel(Reactor.java:1393) at com.thomsonreuters.upa.valueadd.reactor.ReactorChannel.dispatch(ReactorChannel.java:410) at com.thomsonreuters.ema.access.OmmConsumerImpl.rsslReactorDispatchLoop(OmmConsumerImpl.java:504) at com.thomsonreuters.ema.access.OmmConsumerImpl.handleAdminReqTimeout(OmmConsumerImpl.java:1187) at com.thomsonreuters.ema.access.OmmConsumerImpl.initialize(OmmConsumerImpl.java:197) at com.thomsonreuters.ema.access.OmmConsumerImpl.<init>(OmmConsumerImpl.java:92) at com.thomsonreuters.ema.access.EmaFactory.createOmmConsumer(EmaFactory.java:158)

Best Answer

  • chris.garvin

    When EmaFactory.createOmmConsumer(..) is called, EMA sends login, request source directory, and request dictionary to the server.

    Based on StackTrace, I suspect that the problem occurred when
    EMA requested dictionary e.g. dictionary request timeout (the server did not
    send dictionary response within timeout). I simulated dictionary
    request timeout and tested with the latest EMA,Elektron-SDK1.0.5(EMA 3.0.2.L1),
    but the problem did not occur. I got “State: Open/Suspect/None - text:
    "Request timeout"” instead of java.lang.AssertionError. What is
    Elekton SDK/EMA version that you use? I think you do not use the latest EMA
    because I cannot find com.thomsonreuters.ema.access.OmmConsumerImpl.initialize(..)
    and handleAdminReqTimeout(..) in it. Could you test with the latest EMA(Elektron-SDK1.0.5)?
    If the problem still occurs with the latest EMA(Elektron-SDK1.0.5), please post
    EMA trace log. The log shows messages sent between client/server. You can
    enable the log by adding XmlTraceToStdout=1 in
    "Channel_1",default channel node, in EmaConfig.xml as shown below:

    <Name value="Channel_1"/>
    <!-- ChannelType possible values are:-->
    <!-- ChannelType::RSSL_SOCKET - TCP IP connection type-->
    <!-- ChannelType::RSSL_HTTP - Http tunnel connection type-->
    <!-- ChannelType::RSSL_ENCRYPTED - Https tunnel connection type-->
    <!-- ChannelType::RSSL_RELIABLE_MCAST - Reliable multicast connection type-->
    <ChannelType value="ChannelType::RSSL_SOCKET"/>
    <!-- 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="localhost"/>
    <Port value="14002"/>
    <XmlTraceToStdout value="1"/>
    </Channel>

    Please put EmaConfig.xml in application run directory.

Answers