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.

Monitored by Pimchaya

Hello @chris.garvin

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

Hello @chris.garvin,

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query? If yes please click the 'Accept' text next to the reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.

Thanks, AHS

The reply below has been verified as correct in answering the question.

AHS

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.