How do I convert RFA config file to EMAConfig

ReutersConfig.txt

Hi,


I have attached my RFA config file. Can I get a sample EMAConfig file corresponding to attached file?

Where to place server IPs and port?

Best Answer

  • @hanhuitan

    Thanks for reaching out to us.

    EMA doesn't support the SSL (Source Sink Library) connection.

    First, you need to change the Dictionary in Consumer_1 (the default consumer) to Dictionary_2 which loads the dictionary from files.

        <DefaultConsumer value="Consumer_1"/>
        <ConsumerList>
            <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_2"/>
                <XmlTraceToStdout value="0"/>
            </Consumer>

    Then, specify the location of dictionary files in Dictionary_2.

    <Dictionary>
                <Name value="Dictionary_2"/>
                <DictionaryType value="DictionaryType::FileDictionary"/>
                <!-- dictionary names are optional: defaulted to RDMFieldDictionary and enumtype.def -->
                <RdmFieldDictionaryFileName value="./RDMFieldDictionary"/>
    <EnumTypeDefFileName value="./enumtype.def"/>

            </Dictionary>

    Consumer_1 uses Channel_1 for the connection. Therefore, specify the Host and Port configurations in Channel_1.

            <Channel>
                <Name value="Channel_1"/>

                <ChannelType value="ChannelType::RSSL_SOCKET"/>

                <CompressionType value="CompressionType::None"/>
                <GuaranteedOutputBuffers value="5000"/>
                <TcpNodelay value="1"/>
                <Host value="uat.dbs.com"/>
    <Port value="14002"/>

            </Channel>

    EMA uses the RSSL connection and the default port of the RSSL connection is 14002.

    The EmaConfig.xml file is in the Java\Ema directory.

    Finally, specify the username in the code.

                OmmConsumerConfig config = EmaFactory.createOmmConsumerConfig();
                
                consumer  = EmaFactory.createOmmConsumer(config.username("dbsuat"));

    Please feel free to reach out if you have any further questions.

Answers

  • Hi @Jirapongse,


    Thanks for the quick response.


    I'm trying to run series100.ex100_MP_Streaming.IProvider.java with given EmaConfig and giving me below errors,

    com.refinitiv.ema.access.ConfigErrorTracker log

    SEVERE: loggerMsg

    ClientName: EmaConfig

    Severity: Error

    Text: Unable to find tagId for WarmStandbyChannelSet

    loggerMsgEnd


    com.refinitiv.ema.access.ConfigErrorTracker log

    SEVERE: loggerMsg

    ClientName: EmaConfig

    Severity: Error

    Text: Unable to find tagId for WarmStandbyServerInfoGroup

    loggerMsgEnd


    com.refinitiv.ema.access.ConfigErrorTracker log

    SEVERE: loggerMsg

    ClientName: EmaConfig

    Severity: Error

    Text: Unable to find tagId for WarmStandbyGroup

    loggerMsgEnd

    Can help me understand why is it throwing these errors?

  • @hanhuitan

    I am unable to replicate these errors when running ex100_MP_Streaming.

    The followings are log messages when running the example.

    2022-12-02 11:01:25.784 FINEST com.refinitiv.ema.access.OmmServerBaseImpl initialize 
    loggerMsg
        ClientName: Provider_1_1
        Severity: Trace
        Text:    Print out active configuration detail.
         itemCountHint: 10000
         serviceCountHint: 10000
         requestTimeout: 15000
         dispatchTimeoutApiThread: 500
         maxDispatchCountApiThread: 500
         maxDispatchCountUserThread: 500
         userDispatch: 1
         configuredName: Provider_1
         instanceName: Provider_1_1
         xmlTraceEnable: false
         defaultConverterServiceId: 1
         jsonExpandedEnumFields: false
         catchUnknownJsonKeys: false
         catchUnknownJsonFids: true
         closeChannelFromFailure: true
         globalConfig.reactorChannelEventPoolLimit: -1
         globalConfig.reactorMsgEventPoolLimit: -1
         globalConfig.workerEventPoolLimit: -1
         globalConfig.tunnelStreamMsgEventPoolLimit: -1
         globalConfig.tunnelStreamStatusEventPoolLimit: -1
         defaultServiceName: 14002
         acceptMessageWithoutAcceptingRequests: false
         acceptDirMessageWithoutMinFilters: false
         acceptMessageWithoutBeingLogin: false
         acceptMessageSameKeyButDiffStream: false
         acceptMessageThatChangesService: false
         acceptMessageWithoutQosInRange: false
         enforceAckIDValidation: false
         operationModel: 1
         directoryAdminControl: 1
         dictionaryAdminControl: 1
         refreshFirstRequired: true
         maxFieldDictFragmentSize: 8192
         maxEnumTypeFragmentSize: 12800
    loggerMsgEnd


    2022-12-02 11:01:26.669 FINEST com.refinitiv.ema.access.OmmServerBaseImpl initialize 
    loggerMsg
        ClientName: Provider_1_1
        Severity: Trace
        Text:    Successfully open Selector.
    loggerMsgEnd


    2022-12-02 11:01:26.724 FINEST com.refinitiv.ema.access.OmmServerBaseImpl initialize 
    loggerMsg
        ClientName: Provider_1_1
        Severity: Trace
        Text:    Successfully created Reactor.
    loggerMsgEnd


    2022-12-02 11:01:26.867 FINEST com.refinitiv.ema.access.CallbackClient <init> 
    loggerMsg
        ClientName: ItemCallbackClient
        Severity: Trace
        Text:    Created ItemCallbackClient
    loggerMsgEnd


    2022-12-02 11:01:26.937 FINEST com.refinitiv.ema.access.OmmServerBaseImpl initialize 
    loggerMsg
        ClientName: Provider_1_1
        Severity: Trace
        Text:    Provider bound on port = 14002.
    loggerMsgEnd

    Please enable finest logging level in the API and share all log messages. You can refer to this Learn how to direct EMA Java log to Java Logging API article. Moreover, please share the EMAConfig.xml file used in the example.