ChannelDictionary behaviour question + com.refinitiv.ema.access.OmmInvalidUsageExceptionImpl: The...

BMI
BMI Newcomer

... enum value 4445 for the Field ID 374 does not exist in enumerated type definitions

Hello,

I have the following dictionary error with some RICs:

com.refinitiv.ema.access.OmmInvalidUsageExceptionImpl: The enum value 4445 for the Field ID 374 does not exist in enumerated type definitions
at com.refinitiv.ema.access.DictionaryEntryImpl.ommIUExcept (DictionaryEntryImpl.java:166)
at com.refinitiv.ema.access.DictionaryEntryImpl.enumType (DictionaryEntryImpl.java:96)
at com.refinitiv.platformservices.rt.objects.data.Utils.clone (Utils.java:90)
at com.refinitiv.platformservices.rt.objects.data.FieldImpl.<init> (FieldImpl.java:45)
at com.refinitiv.platformservices.rt.objects.data.Field$Builder.build (Field.java:144)
at com.refinitiv.platformservices.rt.objects.marketprice.MarketPriceImpl.extractFieldsFrom (MarketPriceImpl.java:412)
at com.refinitiv.platformservices.rt.objects.marketprice.MarketPriceImpl.onRefreshMsg (MarketPriceImpl.java:213)
at com.refinitiv.ema.access.ItemCallbackClientConsumer.notifyOnRefreshMsg (ItemCallbackClient.java:2586)
at com.refinitiv.ema.access.ItemCallbackClient.processRefreshMsg (ItemCallbackClient.java:1809)
at com.refinitiv.ema.access.ItemCallbackClient.defaultMsgCallback (ItemCallbackClient.java:1646)
at com.refinitiv.eta.valueadd.reactor.Reactor.sendDefaultMsgCallback (Reactor.java:2818)
at com.refinitiv.eta.valueadd.reactor.Reactor.sendAndHandleDefaultMsgCallback (Reactor.java:2927)
at com.refinitiv.eta.valueadd.reactor.WlItemHandler.callbackUser (WlItemHandler.java:3029)
at com.refinitiv.eta.valueadd.reactor.WlItemHandler.readRefreshMsg (WlItemHandler.java:2209)
at com.refinitiv.eta.valueadd.reactor.WlItemHandler.readMsg (WlItemHandler.java:1923)
at com.refinitiv.eta.valueadd.reactor.Watchlist.readMsg (Watchlist.java:302)
at com.refinitiv.eta.valueadd.reactor.Reactor.processRwfMessage (Reactor.java:4693)
at com.refinitiv.eta.valueadd.reactor.Reactor.performChannelRead (Reactor.java:5032)
at com.refinitiv.eta.valueadd.reactor.Reactor.dispatchAll (Reactor.java:7705)
at com.refinitiv.ema.access.OmmBaseImpl.rsslReactorDispatchLoop (OmmBaseImpl.java:1771)
at com.refinitiv.ema.access.OmmBaseImpl.run (OmmBaseImpl.java:1920)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:829)


The dictionary is configured as followed in the EmaConfig.xml file:

<Dictionary>
<Name value="Dictionary_1"/>
<DictionaryType value="DictionaryType::ChannelDictionary"/>
</Dictionary>


Do you have an idea about this error? Does it means the Dictionary is not up to date with the fields returned for the RIC?

Does this behaviour is considered normal? The exception raised by EMA API is Runtime, so I guess it is not.

Furthermore, since the DictionaryType is configured to ChannelDictionary, I have a question: at which time the dictionary is loaded and updated in the caller application using EMA API?


Thanks!

Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    @BMI

    Thanks for reaching out to us.

    I checked the latest version of the data dictionary (4.20.57_RealTimeDistributionSystem_23.31). You can download them from the "myrefintiv.com" website under Software Downloads --> MDS General --> Refinitiv Real-Time Template Service Pack. However, I was unable to find this enum value 4445 in the IRGCOND (374) field.

    Therefore, you need to contact the content support team directly via MyRefinitiv to verify why this enum value is published. Moreover, you can also refer to this discussion.

    It is an expected behavior in the API to throw this exception if it is unable to expand the enum values.

    I hope that this information is of help.