For a deeper look into our Elektron API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
7 1 0 5

MRN WebSocket A18: Unknown service

Hi!

I use example of application from https://developers.refinitiv.com/en/article-catalog/article/creating-websocket-mrn-story-viewer-using-net-core-and-wpf article. I cloned repository (https://github.com/Refinitiv-API-Samples/Example.WebSocketAPI.CSharp.MRNWebSocketViewer) and trying to run application. As far as I understand WebSocket connection is established and login request is accepted by RTDS server. But after that status event is received and connection is closed.

"MRN_STORY Status:: data state:Suspect stream state:Closed code:SourceUnknown status text:A18: Unknown service."

Could you please advise what can be wrong?

Thanks!

websocketsc#mrnweb
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
32.2k 40 11 19

Hello @pavel.kropachev ,

The article you refer to is an excellent resource for MRN integration with .NET Core. The request format has been enhanced since its publication, and the article companion code has become slightly outdated: it uses short form of the request, relying on the default service, that used to be supported. At present, an explicit service parameter is required in the subscription request.

You will need to confirm the name of elektron service that is made available by your local RTDS with your local market data admin/group.

Next, to update the service name in the MRN request, if, for example, your elektron service is named "ELEKTRON_DD", update the code at the point where MRN request is issued, for example:

       public async Task SendMrnStoryRequest(int streamId, string storyItem = "MRN_STORY")
        {
            var serviceName = "ELEKTRON_DD";
            var marketPriceReq = new ReqMessage
            {
                ID = streamId,
                Domain = DomainEnum.NewsTextAnalytics,
                // Key = new MessageKey {Name = new List<string> {storyItem}, NameType = NameTypeEnum.Ric}
                Key = new MessageKey { Name = new List<string> { storyItem }, Service = serviceName }
             };
            await ClientWebSocketUtils.SendTextMessage(_websocket.WebSocket, marketPriceReq.ToJson()          
        }

Hope this information helps

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.

Upvote
17.4k 34 12 12

Hello @pavel.kropachev

While my colleague @zoya faberov answer contains clear information, additionally, you can contact your local Market Data team to configure the RTDS's defaultJsonServiceId parameter to the service id that is mostly used by the consumer applications too.

This parameter defines the default service for the WebSocket client applications. The service can be overridden in the JSON request message. If defaultJsonServiceId is empty (default value), there will be no default service id. The WebSocket applications have to always specify a service in the item requests.

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
7 1 0 5

Hello @zoya faberov and @wasin.w

Thanks for help and clarification!

Currently it looks like MRN_STORY is not permitted in our environment (now I get Access Denied: User req to PE(10001)). So, we need to clarify how to enable this access to continue with example.

Thanks!

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.

Upvote
32.2k 40 11 19

Hello @pavel.kropachev ,

Please contact your organization's Refinitiv account manager for product-related permissioning.

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.

Yes, already done.