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)

Welcome!

It looks like you're new here. Sign in or register to get started.

Best Answer

  • Hello @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

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.