question

Upvotes
Accepted
36 1 3 6

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)

elektronrefinitiv-realtimeelektron-sdkema-apirrtelektron-message-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hello @chris.garvin

If you require any help regarding this question, please let me know.

Upvotes
Accepted
9.6k 10 7 7

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.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
36 1 3 6

Thanks Pimchaya. All set on this one.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
1 0 0 0

Check this one to know more about...Exceptions in Java

Antonio

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.