question

Upvotes
Accepted
7 3 1 4

Proper RDM dictionaries usage questions

I've been studying the RFA and RDM usage guides and I still can't find answers to some questions.

  • The RDM Usage Guide (section 5.8.3) says one should choose the dictionary with the latest version when the same dictionary is provided by multiple services. What if the versions are incompatible, i.e. the major version number differs? Is it possible at all?
  • What does "same dictionary" actually mean? Are two dictionaries considered to be the same if their names match? Do their DictionaryIds need to match as well?
  • Is it possible for a service directory to list *multiple* dictionaries of the same type (FIELD_DEFINITIONS, ENUM_TABLES, ...) in a single service's DictionariesUsed field?
  • If a service requires a dictionary that is provided by multiple services, including itself, should one prefer the version provided by the requesting service itself, or it doesn't matter?
  • Are dictionaries with the same version number and name guaranteed to be identical across multiple services?
  • Is it idiomatic (or required) to decode Field and Enum dictionaries into the single RDMFieldDictionary class instance, as it is done in the Consumer sample?

References to the user guides and documentation would be very much appreciated.

treprfarfa-apielektron-data-dictionaryrdm
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.

@roman.dmitrienko

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

1 Answer

· Write an Answer
Upvotes
Accepted
32.2k 40 11 20

@roman.dmitrienko

As you are designing the dictionary handler for your app, please consider that you are connecting to the infrastructure (TREP or direct feed) that is supplying your data. RFA gives you an option of downloading the dictionaries from the infra, or loading the dictionaries from a local file. Downloading from infra should almost always be preferred, as it guarantees the correspondence between your dictionary and your data stream.

The dictionaries (field and enum) are per infra host you are connecting to, and if you are subscribing to multiple services from the same infra, the services will be under the same dictionaries.

One can open two sessions simultaneously, to different infras, which may be of different versions with different dictionaries. In this case the data from the session should be parsed with the appropriate dictionaries, downloaded from that infra.

If the dictionaries are uploaded from local files, it's the maintenance responsibility for the application admin to always keep the dictionaries in sync with the infra upstream.

The dictionaries with the identical version are the same.

It is customary to refer to SDK examples for info on working with the dictionaries, yes.

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.