question

Upvotes
Accepted
26 1 3 7

how does EMA API uses DataDictionary and why do we need it (Uses and Role ) and do i need to include it externally

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-apidata-model
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.

1 Answer

Upvotes
Accepted
24.5k 86 10 22

Hi @rkumar

If you examine the RDMFieldDictionary and enumtype.def files with a text editor you will note that they contain the field definitions (i.e. ID, name, type etc) and enumeration values for the enum type fields, respectively.

RMDFieldDictionary extract

enumtype.def extract

EMA uses the dictionary files to decode the data it receives from the server / provider.

The recommend approach is to use ChannelDictionary (i.e. download dictionary from the server/provider) rather than local FileDictionary. This is because the dictionary files are updated a few times each year and using a local FileDictionary could cause problems if you try to decode a field whose definition no longer matches the one in your local outdated FileDictionary

Looking at some of your other queries, I noticed that your were testing Canned data using the sink_driven_src tool - which does not support dictionary download. Once you connect to a real feed e.g. via an ADS server or hosted feed, these should allow you to use ChannelDictionary and therefore no longer require you to maintain a local FileDictionary.

Note that the actual download of the ChannelDictionary is done by behind the scenes by EMA when you specify DictionaryType of ChannelDictionary. Just to be clear, the dictionary is stored in memory and not written to a physical file on your local storage.


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.