Non Interactive Provider error message: Unable to find tagId for DefaultServiceID

Hi,

I am trying the NIP but get below error, please advise:

login failed (timed out after waiting 45000 milliseconds) for )

Exiting the application


Full log:

SEVERE: loggerMsg

ClientName: EmaConfig

Severity: Error

Text: Unable to find tagId for DefaultServiceID

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for EnumTypeDefItemName in dictionary [Dictionary_1]. Will use default value of RWFEnum if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for RdmFieldDictionaryItemName in dictionary [Dictionary_1]. Will use default value of RWFFld if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for EnumTypeDefFileName in dictionary [Dictionary_1]. Will use default value of ./enumtype.def if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for RdmFieldDictionaryFileName in dictionary [Dictionary_1]. Will use default value of ./RDMFieldDictionary if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for EnumTypeDefItemName in dictionary [Dictionary_1]. Will use default value of RWFEnum if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for RdmFieldDictionaryItemName in dictionary [Dictionary_1]. Will use default value of RWFFld if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for EnumTypeDefFileName in dictionary [Dictionary_1]. Will use default value of ./enumtype.def if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for RdmFieldDictionaryFileName in dictionary [Dictionary_1]. Will use default value of ./RDMFieldDictionary if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for EnumTypeDefItemName in dictionary [Dictionary_1]. Will use default value of RWFEnum if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for RdmFieldDictionaryItemName in dictionary [Dictionary_1]. Will use default value of RWFFld if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for EnumTypeDefFileName in dictionary [Dictionary_1]. Will use default value of ./enumtype.def if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for RdmFieldDictionaryFileName in dictionary [Dictionary_1]. Will use default value of ./RDMFieldDictionary if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for EnumTypeDefItemName in dictionary [Dictionary_2]. Will use default value of RWFEnum if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:45 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

WARNING: loggerMsg

ClientName: EmaConfig

Severity: Warning

Text: no configuration exists or unspecified name for RdmFieldDictionaryItemName in dictionary [Dictionary_2]. Will use default value of RWFFld if not config programmatically

loggerMsgEnd



nov. 05, 2020 1:51:51 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback

WARNING: loggerMsg

ClientName: ChannelCallbackClient

Severity: Warning

Text: Received ChannelDownReconnecting event on channel Channel_7

RsslReactor @79e4c792

RsslChannel @196a42c3

Error Id 0

Internal sysError 0

Error Location Reactor.processWorkerEvent

Error text Error - exceeded initialization timeout (5 s)

loggerMsgEnd



nov. 05, 2020 1:51:58 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback

WARNING: loggerMsg

ClientName: ChannelCallbackClient

Severity: Warning

Text: Received ChannelDownReconnecting event on channel Channel_7

RsslReactor @79e4c792

RsslChannel @413d1baf

Error Id 0

Internal sysError 0

Error Location Reactor.processWorkerEvent

Error text Error - exceeded initialization timeout (5 s)

loggerMsgEnd



nov. 05, 2020 1:52:05 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback

WARNING: loggerMsg

ClientName: ChannelCallbackClient

Severity: Warning

Text: Received ChannelDownReconnecting event on channel Channel_7

RsslReactor @79e4c792

RsslChannel @196a42c3

Error Id 0

Internal sysError 0

Error Location Reactor.processWorkerEvent

Error text Error - exceeded initialization timeout (5 s)

loggerMsgEnd



nov. 05, 2020 1:52:14 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback

WARNING: loggerMsg

ClientName: ChannelCallbackClient

Severity: Warning

Text: Received ChannelDownReconnecting event on channel Channel_7

RsslReactor @79e4c792

RsslChannel @413d1baf

Error Id 0

Internal sysError 0

Error Location Reactor.processWorkerEvent

Error text Error - exceeded initialization timeout (5 s)

loggerMsgEnd



nov. 05, 2020 1:52:24 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback

WARNING: loggerMsg

ClientName: ChannelCallbackClient

Severity: Warning

Text: Received ChannelDownReconnecting event on channel Channel_7

RsslReactor @79e4c792

RsslChannel @196a42c3

Error Id 0

Internal sysError 0

Error Location Reactor.processWorkerEvent

Error text Error - exceeded initialization timeout (5 s)

loggerMsgEnd



nov. 05, 2020 1:52:32 PM com.thomsonreuters.ema.access.OmmBaseImpl handleLoginReqTimeout

SEVERE: loggerMsg

ClientName: Provider_1_1

Severity: Error

Text: login failed (timed out after waiting 45000 milliseconds) for )

loggerMsgEnd



nov. 05, 2020 1:52:32 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback

SEVERE: loggerMsg

ClientName: ChannelCallbackClient

Severity: Error

Text: Received ChannelDown event on channel Channel_7

Instance Name Provider_1_1

RsslReactor @79e4c792

RsslChannel @413d1baf

Error Id 0

Internal sysError 0

Error Location Reactor.processWorkerEvent

Error text Error - exceeded initialization timeout (5 s)

loggerMsgEnd


Kind regards,

Johan

Best Answer

  • Hi @johan.lundquist

    Can you please confirm a few things:

    • are you using one of our examples to start with? If so which one?
    • has your market data team defined a NIP service on their ADH server to receive your incoming NIP connection request
    • have you configured the EMAConfig.xml to define your NIP service details and connectivity details (and is the XML file in the working directory for the example)

    I just tried running the simplest example ex100_MP_Streaming - using the default EMAConfig.xml file and without configuring my ADH details etc and I see similar errors/warnings as you do.
    You will note the default DefaultNiProvider config of Provider_1 refers to Channel_7 for the server config parameters - which defaults to localhost. So my immediate suspicion would be that whilst the config file is in the correct location, it has not been modified to define your NIP service and/or connectivity details.

    If you have not discussed your NIP requirements with your MarketData team please do.


Answers

  • Sorry my bad, I am trying to connect to a port on test server which is not available over my VPN.

    Ticket can be closed, thanks.

    Johan

  • Hi @johan.lundquist

    thanks for the update.

    Just to confirm that you will also need to configure a Directory config e.g. with the default config file it will be referencing Directory_1 which by default is configured to publish to the TEST_NI_PUB service.

  • Perfect thanks, I thought the config file was the one in the same directory as the tutorial example but you where right so now that's fixed and I get an expected output:

    Waiting for 5 seconds...

    Provider is connected. OmmState:Open / Ok / None / 'Login accepted by host.'

    Refreshing JOHAN_NIP_ITEM

    Waiting for 60 seconds...

    Disconnecting...

    Exiting the application


    We have issues configuring the ADH server however so I have not been able to complete the test fully yet.


    Kind regards,

    Johan

  • What about "DefaultServiceID" for my provider, I can't find it in the config file?


    Provider created

    Connecting Provider to ADH as G47193

    Nov 06, 2020 1:15:04 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

    SEVERE: loggerMsg

    ClientName: EmaConfig

    Severity: Error

    Text: Unable to find tagId for DefaultServiceID

    loggerMsgEnd

  • What about "DefaultServiceID" for my provider, I can't find it in the config file? And it seems required in order for me to publish.


    Provider created

    Connecting Provider to ADH as

    Nov 06, 2020 1:15:04 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

    SEVERE: loggerMsg

    ClientName: EmaConfig

    Severity: Error

    Text: Unable to find tagId for DefaultServiceID

    loggerMsgEnd

  • Hi @johan.lundquist

    I am sure you are aware of this but I just want to double-check..

    As well as the file directory on your PC where the config is located, the Directory entries in the EMAconfig file are also relevant to this scenario.

    Whilst the following article is concerned with SymbolList publication, you may find sections of it useful.
    Publishing Symbol List using EMA Non-Interactive Provider

    Also under the following Tutorials page Refinitiv Realtime SDK Tutorials

    under the EMA NI Providers Tutorials, there is a section labelled - TREP Configuration for NI Providers which you may also find useful.

  • Thank you @umer.nalla and yes it is exactly this piece: tconfig publisher_server -n <node name> -i "" -s <service name>

    We have configured it as but I don't understand where in my EmaConfig.xml I am supposed to add that "1"? By example this one doesn't work so please advise:

    <Channel>

    <Name value="Channel_7"/>

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

    <GuaranteedOutputBuffers value="5000"/>

    <ConnectionPingTimeout value="30000"/>

    <TcpNodelay value="1"/>

    <Host value=""/>

    <Port value=""/>

    </Channel>

  • perfect found it thanks! still the exception and the tag name could be aligned:

    Unable to find tagId for DefaultServiceID != ServiceId when doing a ctrl+f :)

  • The provider seems to run but with strange errors like below:

    Nov 06, 2020 3:38:47 PM com.thomsonreuters.ema.access.ConfigErrorTracker log

    SEVERE: loggerMsg

    ClientName: EmaConfig

    Severity: Error

    Text: service[CURVEPUB] is already specified by another service. Will drop this service.

    loggerMsgEnd

    Nov 06, 2020 3:38:48 PM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback

    INFO: loggerMsg

    ClientName: ChannelCallbackClient

    Severity: Info

    Text: Received ChannelUp event on channel Channel_7

    Instance Name Provider_1_1

    Component Version adh3.4.1.L1.linux.tis.rrg 64-bit

    loggerMsgEnd

    Waiting for 5 seconds...

    Provider is connected. OmmState:Open / Ok / None / 'Login accepted by host '

    Refreshing JOHAN_NIP_ITEM

    Waiting for 1 seconds...

    Updating JOHAN_NIP_ITEM

    Waiting for 1 seconds...

    Sending a Stale status for JOHAN_NIP_ITEM

    Waiting for 3 seconds...


    And the consumer can't pick it up due to "Service not available"?

    StatusMsg

    streamId="5"

    domain="MarketPrice Domain"

    state="Open / Suspect / None / 'Service not available'"

    name="JOHAN_NIP_ITEM"

    serviceName="CURVEPUB"

    StatusMsgEnd

  • Hi @johan.lundquist

    I am not a TREP expert, but I understand the nodename is not the same as the hostname.

    If your AHD machine host name is <> - then that is all that is required in the EMAConfig.xml for Host value.

    The nodename is specific to the TREP config files.

  • Hi @johan.lundquist

    Looking at the EMA Java source code in Java\Ema\Core\src\main\java\com\thomsonreuters\ema\access\DirectoryServiceStore.java

    if( serviceNameSet.contains(serviceName))   
    {   config.errorTracker().append("service[").append(serviceName)                         .append("] is already specified by another service. Will drop this service.").create(Severity.ERROR);    
    continue;  
    }

    This would suggest that you are specifying the same service twice in the Directory config perhaps?

    Please feel free to attach your EmaConfig.xml as a txt file if you wish for someone here to take a look.

    You may also be able to Contact Premium Support so that this can be investigated offline in more detail.

  • Thank you @umer.nalla I think I got that error message resolved by remove it from the below:

    <Service> <Name value="CURVEPUB"/>

    But still my consumer doesn't pick up anything with same message state="Open / Suspect / None / 'Service not available'".

    In .txt format due to some upload format issue:

    NiProvider-->

    Main-->

    I tried the link you enclosed for offline support, which indeed sounds best, but I couldn't find any contact info for it from that link?

    Thanks,

    Johan

  • Remaining files due to upload restriction:

    EmaConfig-->

    Consumer-->

  • Hi @johan.lundquist

    I will take a look at your uploads, and will also check with your account team if you are entitled to Premium Support.

    Just a quick initial question, I assume the ADH + ADS are both running in the host xxxxxxx?

    With regards to premium support, I assume you do not see the Contact button as shown below?

    image

    In the meantime, I recommend you ask your MarketData team to confirm if they can see a service status/stats for your CURVEPUB service in the ADH Monitor tool and ADS Monitor tool. They can then check if the status changes as and when you start/stop your NIPROVIDER example.

    I would also recommend you running up one of our simpler NIProvider examples such as ex100_MP_Streaming / example100__MarketPrice__Streaming with minor changes for servicename etc, with your config file and see if it yields different results in terms of the ADH monitor and simple consumer. This will help eliminate the possibility of a coding error in your code.

    If your MarketData team are not familiar with the ADH / ADS Monitor tools then they can raise a ticket for the Refinitiv Real-Time Advanced Distribution Hub product via My.Refinitiv and get some advice from an ADH / ADS specialist.

  • Hi @johan.lundquist

    The other thing worth trying is setting the ServiceId in the EMAConfig.xml to be the same as the one specified in the TREP cnf file e.g.

    *CURVEPUB*serviceId : 123

    I am not a TREP expert so not 100% certain if this is necessary and not in a position to test right now.

  • Thank you @umer.nalla, no I don't get that Contact support button unfortunately but I'll ask our KAM for that.

    On TREP I have this:


    And now I tested to use 365 as server id in my EmaConfig.xml, but still can't see any service up and running on Service Statistics on AHD monitor.


    The NIP runs as below:

    Waiting for 5 seconds...

    Provider is connected. OmmState:Open / Ok / None / 'Login accepted by host '

    Refreshing JOHAN_NIP_ITEM

    Waiting for 1 seconds...

    Updating JOHAN_NIP_ITEM

    Waiting for 1 seconds...


    But again can't see it on ADH Monitor, and whey trying to run a consumer I just get:

    StatusMsg

    streamId="5"

    domain="MarketPrice Domain"

    state="Open / Suspect / None / 'Service not available'"

    name="JOHAN_NIP_ITEM"

    serviceName="CURVEPUB"

    StatusMsgEnd


    Please note when we run the Refinitiv provider binary tool on TREP I can successfully consume the data from the one and same consumer I'm trying to consumer my own NIP app with.


    Thanks,

    Johan

  • Hi @johan.lundquist

    Thanks for the detailed reply. Were you able to try one of the standard NIProvider examples as suggested earlier? Did this give the same result?

    If the service is not appearing at all in the ADH monitor then that is concerning - since your app does report a successful login. Your MarketData team should raise a My.Refinitiv ticket so they can work with TREP support to ensure the rest of the ADH config is correct.

    If the service is not showing in the ADH mon, then your consumer will not be able to connect - as the service is not available.

    If the service does appear but is not showing as UP / Accepting Requests status - your MarketData team should check if there are any entries in the ADH log file which could provide further clues as to why this is not working.

    I have checked and you are not a named Premium support user for your organisation, so I am checking if there are any other named members and if not, then I will see if there is another way of getting some offline API support so that this can be investigated in more detail.

  • Thank you @umer.nalla, I am in contact with our Custom Success Manager Mr. Hartmann and he will try fix the "premium support" issue so you don't need to waste your time on that.

    "Were you able to try one of the standard NIProvider examples as suggested earlier? Did this give the same result?" - I am only running examples from your Tutorial.

    And yes I agree the issue to be the service no showing up even as DOWN on ADH monitoring, I'm troubleshooting this as the moment.

    I'll revert back to you once the service is appearing on TREP server.

    Thanks for now,

    Johan

  • @umer.nalla, short update my provider is actually successfully publishing as I could see in the ADH logs:

    [Mon Nov 09 10:53:06.293689 2020] RSSL Message Of Length 47 Received on Socket 508
    <!-- rwfMajorVer="14" rwfMinorVer="1" -->
    <updateMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="-1" containerType="RSSL_DT_FIELD_LIST" flags="0x8 (RSSL_UPMF_HAS_MSG_KEY)" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" dataSize="15">
    <key flags="0x3 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME)" serviceId="512" name="JOHAN_NIP_ITEM"/>
    <dataBody>
    <fieldList flags="0x8 (RSSL_FLF_HAS_STANDARD_DATA)">
    <fieldEntry fieldId="22" data="0C38 C3"/>
    <fieldEntry fieldId="25" data="0C3E 0A"/>
    </fieldList>
    </dataBody>
    </updateMsg>

    Now I'm troubleshooting why this service isn't available to see from a consumer perspective, somehow a progress still.

  • Hi @johan.lundquist

    I note in the above output that the serviceID is 512.

    Also, I just spotted in your earlier reply you mentioned serverID which is not the same as serviceID

    ServerID is the unique value for each server instance, whereas serviceID is the unique value for each service/source available on those servers.

    You should be looking for something like the following in your rmds.cnf

    *NIPROV*serviceId : 260


  • Hi @umer.nalla, sorry I must have mismatched it in typo but yes I'm using serviceId 512 in my EmaConfig.xml:

    <ServiceId value="512"/>

    Matching the TREP's:

    *CURVEPUB*serviceId : 512

    It seems I am getting my Premium account now internally, however I think the issue is nailed down to this config on the TREP side:

    Based on directions from Refinitiv documentation:

    tconfig publisher_server -n <node name> -i "" -s <service name>

    Is this .1 expected? -->

    Thanks,

    Johan

  • Hi @umer.nalla, finally I got it resolved by add instanceId with full string of server and id as:

    provider = EmaFactory.createOmmProvider(config.username("").instanceId(""));

    Do you know how I can set instanceId in the EmaConfig.xml instead of directly in the code as a last question?

    Thanks,

    Johan

  • @umer.nalla, can I please have you remove the server name above as I've got complains from internal IT?

    Thanks,

    Johan

  • Hi @johan.lundquist

    Apologies for not replying sooner - I must have missed that reply notification email on the 12th.

    The instanceId() cannot be set via the EMAConfig.xml at present - it is one of the few parameters that have to be set programmatically (you can refer to the EMAJ_ConfigGuide.pdf for details)

    Can you confirm if you are running multiple instances of NIProvider application?

    With regards server name - I removed the one reference I could find. If I have missed any others please let me know.

  • Perfect thank you @umer.nalla.

    Yes I've managed to run multiple agents using different instance id's and it works fine.

    Kind regards,

    Johan