The current situation that i am trying to test:
Windows sink+ windows client works. (compiled by me) on same machine using ip
Windows sink + Linux client (in eclipse project based on 110 with minor modifications - same code as on windows )
OmmConsumer consumer(OmmConsumerConfig("/root/eclipse-workspace/test/conf/EmaConfig.xml").consumerName("Consumer_13").username("ANYUSER")); // uses configuration from EmaConfig.xml
consumer.registerClient( ReqMsg().serviceName( "ELEKTRON_EDGE" ).name( "JPY=" ), client );
gives me the error::
Exception Type='OmmInvalidUsageException', Text='DictionaryCallbackClient::loadDictionaryFromFile() failed.
Unable to load RDMFieldDictionary from file named ./RDMFieldDictionary
or load enumtype.def from file named ./enumtype.def', ErrorCode='-1'
i have put in the directory of EmaConfig.xml enumtype.def and RDMFieldDirectory
You can optionally include the complete path to dictionary in EmaConfig.xml, in DictionaryList section, something like:
<Consumer> <!-- Name is mandatory --> <Name value="Consumer_1"/> <!-- Channel is optional: defaulted to "RSSL_SOCKET + localhost + 14002" --> <!-- Channel or ChannelSet may be specified --> <Channel value="Channel_1"/> <!-- Dictionary is optional: defaulted to "ChannelDictionary" --> <Dictionary value="Dictionary_3"/> ... <Dictionary> <Name value="Dictionary_3"/> <!-- providers always assume DictionaryType = DictionaryType::FileDictionary --> <DictionaryType value="DictionaryType::FileDictionary"/> <!-- dictionary file names are optional: defaulted to ./RDMFieldDictionary and ./enumtype.def --> <RdmFieldDictionaryFileName value="/opt/user/dicts/RDMFieldDictionary"/> <EnumTypeDefFileName value="/opt/user/dicts/enumtype.def"/> ...
Based on the information you have provided, the most likely cause is that the RDMFieldDictionary and enumtype.def files are not in the expected location.
Typically the application would try to find them in the current working directory - which may not be the same as the application folder perhaps?
The other alternative approach would be to specify the full directory path and file location in the config, so there is no ambiguity to the location.