question

Upvotes
Accepted
1 1 1 4

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?

ema-apirfa-api#technologyconfiguration
reutersconfig.txt (1.8 KiB)
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.

Upvotes
Accepted
56.2k 145 45 65

@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.

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.

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?

Upvotes
56.2k 145 45 65

@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.

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.