Use of EMA ChannelSet

How can we use the different ADS servers at the same time for our 11 OmmConsumers ?

Can using EMA ChannelSet reduce the Stale status (DataStream=”Suspect” and StreamState=”Open”) when using ema-API ?

If so, do you have an example of a simple config.xml ?

The example of EmaConfigTest.xml

/RTSDK-2.0.3.L2.java.rrg/Java/Ema/Core/src/test/resources/com/refinitiv/ema/unittest/EmaFileConfigTests/EmaConfigTest.xml is very complex.

Can the Emaconfig.xml be simplified to use the Channels without giving all the technical details for the connection ?

Best Answer

  • Jirapongse
    Answer ✓

    @luc.dossche

    Thank you for reaching out to us.

    I don't think that the ChannelSet can reduce the Open/Suspect state. The ChannelSet specifies a comma-separated set of channels names. Each listed channel name should have an appropriate <Channel> entry in the ChannelGroup. Channels in the set will be tried with each reconnection attempt until a successful connection is made. It is used to fail-over to another server. During the fail-over, the appliaction will receieve the Open/Suspect state.

    This is a simple configuration (EmaConfig.xml) for a consumer application.

    <?xml version="1.0" encoding="UTF-8"?>
    <EmaConfig>
    <ConsumerGroup>
        <DefaultConsumer value="Consumer_1"/>
        <ConsumerList>
            <Consumer>            
                <Name value="Consumer_1"/>            
                <ChannelSet value="Channel_1"/>        
                <Dictionary value="Dictionary_2"/>        
            </Consumer>        
        </ConsumerList>
    </ConsumerGroup>


    <ChannelGroup>
        <ChannelList>
            <Channel>
                <Name value="Channel_1"/>        
                <ChannelType value="ChannelType::RSSL_SOCKET"/>            
                <CompressionType value="CompressionType::None"/>
                <GuaranteedOutputBuffers value="5000"/>            
                <ConnectionPingTimeout value="30000"/>        
                <TcpNodelay value="1"/>
                <Host value="127.0.0.1"/>
                <Port value="14002"/>
            </Channel>        
        </ChannelList>
    </ChannelGroup>


    <DictionaryGroup>
        <DictionaryList>        
            <Dictionary>
                <Name value="Dictionary_2"/>
                <DictionaryType value="DictionaryType::FileDictionary"/>            
                <RdmFieldDictionaryFileName value="./RDMFieldDictionary"/>
                <EnumTypeDefFileName value="./enumtype.def"/>
            </Dictionary>
            
        </DictionaryList>
    </DictionaryGroup>
    </EmaConfig>