question

Upvotes
Accepted
5 0 1 4

Error occurred while running RTO consumer - Failed to request service discovery information.

Hi,
I am using RTSDK for streaming real time prices but I get below error when I run my consumer. I am using Authentication version v2. I am able to successfully login using the curl command. I have required licenses also in place under my service account. Can you help why the failure. Is it something related to license where license does not have all the scope assigned. Adding code snippets for more details. TIA

com.refinitiv.ema.access.OmmInvalidUsageExceptionImpl: loggerMsg
    ClientName: ChannelCallbackClient
    Severity: Error
    Text:    Failed to add RsslChannel(s) to RsslReactor. Channel name(s) Channel_1
Instance Name Consumer_1_1
RsslReactor @17ffd08b
RsslChannel null
Error Id -1
Internal sysError 0
Error Location RestReactor.submitServiceDiscoveryRequestBlocking
Error Text Failed to request service discovery information. Text: {"error":{"id":"04319d5b-e04e-4a0c-8c57-8389bbb7c9bd","code":"insufficient_scope","message":"access denied. Scopes required to access the resource: [trapi.streaming.pricing.read]. Missing scopes: [trapi.streaming.pricing.read]","status":"Forbidden"}}

loggerMsgEnd
Map elementMap = EmaFactory.createMap();
        ElementList elementList = EmaFactory.createElementList();
        ElementList innerElementList = EmaFactory.createElementList();

        innerElementList.add(EmaFactory.createElementEntry().ascii("Channel", "Channel_1"));
        innerElementList.add(EmaFactory.createElementEntry().ascii("Dictionary", "Dictionary_1"));
        elementMap.add(EmaFactory.createMapEntry().keyAscii("Consumer_1", MapEntry.MapAction.ADD, innerElementList));
        innerElementList.clear();

        elementList.add(EmaFactory.createElementEntry().map("ConsumerList", elementMap));
        elementMap.clear();

        configDb.add(EmaFactory.createMapEntry().keyAscii("ConsumerGroup", MapEntry.MapAction.ADD, elementList));
        elementList.clear();

        innerElementList.add(EmaFactory.createElementEntry().ascii("ChannelType", "ChannelType::RSSL_ENCRYPTED"));
        innerElementList.add(EmaFactory.createElementEntry().intValue("EnableSessionManagement", 1));

        elementMap.add(EmaFactory.createMapEntry().keyAscii("Channel_1", MapEntry.MapAction.ADD, innerElementList));
        innerElementList.clear();

        elementList.add(EmaFactory.createElementEntry().map("ChannelList", elementMap));
        elementMap.clear();

        configDb.add(EmaFactory.createMapEntry().keyAscii("ChannelGroup", MapEntry.MapAction.ADD, elementList));
        elementList.clear();
consumer = EmaFactory.createOmmConsumer(
                config.consumerName("Consumer_1")
                        .clientId(RtoConsumerConfig.clientId)
                        .clientSecret(RtoConsumerConfig.clientSecret)
                        .config(configDb)
#productema-apijavarrtorefinitiv-realtime-optimisedrefinitiv-realtime-sdk
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
27.7k 67 18 14

Hello @anna.h

Does your machine network policy/firewall block a connection to the RTO server?

You can try with the telnet command from the same machine that encountered the issue as follow:

telnet ap-southeast-1-aws-3-sm.optimized-pricing-api.refinitiv.net 14002

If the connect success, it should show the following empty prompt like this.

1728469348146.png


1728469348146.png (5.1 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.

Thanks for the response. I am currently working with my Info Sec team to get the port 14002 opened for the *. refinitv.net domain
Upvotes
15.5k 33 5 10

Hi @anna.h ,

Based on your description and the error message, it would appear that the licences attached to your MachineID have been changed or expired.

Are you on a trial account or full production account?

If this is for a full Production account, I recommend you raise a ticket with MyAccount for the RTO service

1727697319221.png

If, however, you are on a Trial account, then please speak to your Refinitiv account representative to discuss extending the trial or other options.


1727697319221.png (29.1 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
5 0 1 4

Thanks for the quick response. I am on a trial account. I checked the license details and it's start date is today and it ends one month from now.

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.

@anna.h

The account is valid but it doesn't have the trapi.streaming.pricing.read scope which is required when requesint the real-time streaming data.

{"error":{"id":"04319d5b-e04e-4a0c-8c57-8389bbb7c9bd","code":"insufficient_scope","message":"access denied. Scopes required to access the resource: [trapi.streaming.pricing.read]. Missing scopes: [trapi.streaming.pricing.read]","status":"Forbidden"}}

Please contact your LSEG account team or sales team to verify the permission.

Upvotes
5 0 1 4

The previous error seems to have got resolved. I am able to get all the locations using curl (https://api.refinitiv.com/streaming/pricing/v1/) but only via cmd.

When I run my code I get below error. Can you help here please.


Oct 03, 2024 2:18:13 PM com.refinitiv.ema.access.OmmBaseImpl handleLoginReqTimeout
SEVERE: loggerMsg
    ClientName: Consumer_1_1
    Severity: Error
    Text:    login failed (timed out after waiting 45000 milliseconds) for :)
loggerMsgEnd


Oct 03, 2024 2:18:13 PM com.refinitiv.ema.access.ChannelCallbackClient reactorChannelEventCallback
SEVERE: loggerMsg
    ClientName: ChannelCallbackClient
    Severity: Error
    Text:    Received ChannelDown event on channel Channel_1
Instance Name Consumer_1_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
loggerMsgEnd
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
87k 294 53 79

@anna.h

To scope down the issue, please run the ex113_MP_SessionMgmt or ex450_MP_QueryServiceDiscovery example in the package. Please also confirm the version of RTSDK or EMA that you are using.

Moreover, we need trace log to verify what the problem is. Please check this Learn how to direct EMA Java log to Java Logging API article.

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.

I am using version: '3.8.0.0'.

I can discover all the Url’s using my code, but I am not able to connect to any of the discovered AWS url’s as I keep getting timeout error for all locations.

Do I need something to be able to connect to the aws url’s. Is it something related to certificates or some other access that I need.

TIA

Oct 03, 2024 3:59:04 PM com.refinitiv.ema.access.OmmBaseImpl handleLoginReqTimeout
SEVERE: loggerMsg
    ClientName: Consumer_1_1
    Severity: Error
    Text:    login failed (timed out after waiting 45000 milliseconds) for ap-southeast-1-aws-3-sm.optimized-pricing-api.refinitiv.net:14002)
loggerMsgEnd
 
 
Oct 03, 2024 3:59:04 PM com.refinitiv.ema.access.ChannelCallbackClient reactorChannelEventCallback
SEVERE: loggerMsg
    ClientName: ChannelCallbackClient
    Severity: Error
    Text:    Received ChannelDown event on channel Channel_1
               Instance Name Consumer_1_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
loggerMsgEnd

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.