EMA ChannelSet failover

Hi

I'm testing NiProvider failover using the <ChannelSet value="Channel_1,Channel_2"/> option.

I've intentionally set Channel_1 to an invalid host to force it to failover immediately when I start my application. This appears to work fine and I get a "Login accepted by host message" from Channel_2. However when I attempt to start publishing data it throws the following exception.

Jan 10, 2018 1:08:41 PM com.thomsonreuters.ema.access.OmmNiProviderImpl submit SEVERE: loggerMsg ClientName: NiProvider_1_1 Severity: Error Text: Internal error: rsslChannel.submit() failed in OmmNiProviderImpl.submit(RefreshMsg)RsslChannel 0 Error Id -1 Internal sysError 0 Error Location Reactor.submitChannel Error Text ReactorChannel is closed, aborting. loggerMsgEnd

Channel_2 works fine if I connect directly to it ie if I use <ChannelSet value="Channel_2"/> so I assume there is an issue with the failover mechanism.

anyone having this issue as well ?

thanks

I can see it may be linked to when I request the dictionary from Channel_2 after I receive the login message.

java.lang.NullPointerException at com.thomsonreuters.ema.access.NiProviderDictionaryItem.rsslSubmit(DictionaryCallbackClient.java:1920) at com.thomsonreuters.ema.access.NiProviderDictionaryItem.open(DictionaryCallbackClient.java:1777) at com.thomsonreuters.ema.access.ItemCallbackClient.registerClient(ItemCallbackClient.java:1990) at com.thomsonreuters.ema.access.OmmBaseImpl.registerClient(OmmBaseImpl.java:385) at com.thomsonreuters.ema.access.OmmNiProviderImpl.registerClient(OmmNiProviderImpl.java:280) at com.thomsonreuters.ema.access.OmmNiProviderImpl.registerClient(OmmNiProviderImpl.java:263)

Best Answer

  • wasin.w
    wasin.w admin
    Answer ✓

    Hi @david.gardiner

    I can replicate the same issue with EMA Java 1.1.1's NIProvider example 350 application. If the application does failover to the second ADH, the application encounters the same exception when the API sends Dictionary Request message to the second ADH.

    You can submit this issue in GitHub issue page to the Development team directly.

    Please see my exception messages below:

    Jan 11, 2018 6:13:06 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback
    WARNING: loggerMsg
    ClientName: ChannelCallbackClient
    Severity: Warning
    Text: Received ChannelDownReconnecting event on channel Channel_1
    RsslReactor Channel is null
    Error Id 0
    Internal sysError 0
    Error Location Reactor.processWorkerEvent
    Error text Error initializing channel: errorId=-1 text=Connection refused: no further information
    loggerMsgEnd


    Jan 11, 2018 6:13:07 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback
    INFO: loggerMsg
    ClientName: ChannelCallbackClient
    Severity: Info
    Text: Received ChannelUp event on channel Channel_3
    Instance Name Provider_1_1
    Component Version adh3.2.0.L1.linux.tis.rrg 64-bit
    loggerMsgEnd


    Exception in thread "main" java.lang.NullPointerException
    at com.thomsonreuters.ema.access.NiProviderDictionaryItem.rsslSubmit(DictionaryCallbackClient.java:1920)
    at com.thomsonreuters.ema.access.NiProviderDictionaryItem.open(DictionaryCallbackClient.java:1777)
    at com.thomsonreuters.ema.access.ItemCallbackClient.registerClient(ItemCallbackClient.java:1990)
    at com.thomsonreuters.ema.access.OmmBaseImpl.registerClient(OmmBaseImpl.java:380)
    at com.thomsonreuters.ema.access.OmmNiProviderImpl.registerClient(OmmNiProviderImpl.java:280)
    at com.thomsonreuters.ema.access.OmmNiProviderImpl.registerClient(OmmNiProviderImpl.java:263)
    at com.thomsonreuters.ema.examples.training.niprovider.series300.example350__Dictionary__Streaming.NiProvider.main(NiProvider.java:135)

Answers