Failure of retrieving certain RIC code data by using RFA.NET

Options

I tried to retrieve the data for RIC: DE6MT=RR by our program using RFA.NET (RFA7_NET100)

But it return the error as below:


2021/08/11 13:21:23.764 TRACE <- Received MMT_MARKET_PRICE Status

serviceName : ELEKTRON_DD

symbolName : dDE6MT=RRd

streamState : Closed

dataState : Suspect

statusCode : NotFound

statusText : The record could not be found


But it is ok when we are using Eikon terminal.

Tagged:

Best Answer

  • Alex Putkov.1
    Alex Putkov.1 ✭✭✭✭✭
    Answer ✓

    @sanniel

    To summarize the answers spread over a number of posts on this thread, TS1 is a legacy system providing timeseries data. Refinitiv strongly recommends that is it not used in any new applications you develop. There are several alternatives including for example the RDP Historical Pricing API. If you must use TS1 in your application, then instead of DE6MT=RR RIC, which does not exist on TS1, you could use EU6MT=RR, which does exist on TS1.

Answers

  • Hi @sanniel

    Looking at the status msg above, you are trying to subscribe to dDE6MT=RRd - which is not a valid RIC - but DE6MT=RR is a valid RIC?


  • sanniel
    sanniel Newcomer

    Hi umer.nalla ,

    I actually try to get RIC code DE6MT=RR, which I can retrieve by other API like Excel Eikon API.

    1628671779090.png


    But When I try to retrieve it from RFA.NET, it failed. And return the error as above.

    It is the DLL we used.

    1628671895140.png

  • Hi @sanniel

    Unfortunately, the statusmsg indicates the server is receiving a request for dDE6MT=RRd - so this would suggest there is something not right with the code you are using?

    Is it a standard RFA.NET example that we supply or is it your own code?

    Please share the snippet of the code where you set the RIC code in the request msg. If passing in a variable, have you tried hardcoding the RIC code - just for testing purposes?



  • sanniel
    sanniel Newcomer

    Hi,

    It is ok when we pass other RIC code: EUR6MFSR=

    And there are also "d" prefix and suffix from the log.

    We use a standard RFA.NET you supply.


    2021/08/11 17:02:40.753 TRACE Create Item Request

    itemName : dEUR6MFSR=d

    serviceName : ELEKTRON_DD

    indicationMask : 0

    msgModelType : 6 : MarketPrice

    interactionType : 1 : InitialImage

    ********************** INFO ************************ INFO **********************

    2021/08/11 17:02:40.755 INFO

    <- Received Event Stream Closed Event, event type: OMMItemEvent handle: 147095088

    2021/08/11 17:02:41.083 TRACE <- Received MMT_MARKET_PRICE Refresh

    serviceName : ELEKTRON_DD

    symbolName : dEUR6MFSR=d

    streamState : NonStreaming

    dataState : Ok

    statusCode : None

    statusText : All is well

    2021/08/11 17:02:41.084 TRACE Create Item Request

    itemName : dEUR6MFSR=d1

    serviceName : ELEKTRON_DD

    indicationMask : 0

    msgModelType : 6 : MarketPrice

    interactionType : 1 : InitialImage

    ********************** INFO ************************ INFO **********************

    2021/08/11 17:02:41.086 INFO

    <- Received Event Stream Closed Event, event type: OMMItemEvent handle: 147099344

    2021/08/11 17:02:41.397 TRACE <- Received MMT_MARKET_PRICE Refresh

    serviceName : ELEKTRON_DD

    symbolName : dEUR6MFSR=d1

    streamState : NonStreaming

    dataState : Ok

    statusCode : None

    statusText : All is well



    ================================================================

    : TS1 Data parsing completed

    : Number Of RICs parsed : 2

    : Number Of Samples parsed : 632

    ================================================================




    ###################### displayBySample ######################

    :

    : This is example to get the point value from TS1Series object

    : The example will display the data only 5 columns which are

    : CLOSE, OPEN, HIGH, LOW and VOLUME

    :

    ----------------------------------------------------------------------------------

    DATE CLOSE


    ----------------------------------------------------------------------------------

    10/08/2021 -0.537


    09/08/2021 -0.537


    06/08/2021 -0.536


    05/08/2021 -0.535


    04/08/2021 -0.534


    03/08/2021 -0.527


    02/08/2021 -0.527


    30/07/2021 -0.526


    29/07/2021 -0.528


    28/07/2021 -0.527


    27/07/2021 -0.527


    26/07/2021 -0.524


    23/07/2021 -0.523


    22/07/2021 -0.525


    21/07/2021 -0.521


    20/07/2021 -0.525


    19/07/2021 -0.525


    16/07/2021 -0.524


    15/07/2021 -0.525


    14/07/2021 -0.527


  • sanniel
    sanniel Newcomer

    By the way, we are using RFA.NET 7 TS 1 series Object

  • sanniel
    sanniel Newcomer

    And we just used the sample program provided by you named

    StarterConsumer_TS1

  • Hi @sanniel

    The above to RICs you mention dEUR6MFSR=d and dEUR6MFSR=d1 are both valid RICS, but unfortunately dDE6MT=RRd is not recognised as a valid RIC.

    It is not RFA.NET returning the error, it is the server and our Real-time feed reporting that it is not a valid RIC and RFA.NET is merely passing on that information.

    I have raised a Content-type Ticket with the Data Helpdesk - who may be able to advise which RIC you can use to obtain the TS1 data you require.

    They should be in touch soon

  • Hi @sanniel

    I should also point out that RFA.NET 7.4 is no longer supported. The current version is 8.2.1.L1

    NOTE: The version is NOT related to the issue you reported above. However, you should upgrade as soon as possible. If you ever face any production issues caused by a bug in RFA.NET, the bug fix would only be provided for the latest release and you may lose time upgrading from RFA 7 to 8.x at a critical time.


  • sanniel
    sanniel Newcomer

    When we try RIC code "JP6MT=RR". The program throws exception.

    2021/08/11 18:11:44.317 TRACE <- Received MMT_MARKET_PRICE Refresh

    serviceName : ELEKTRON_DD

    symbolName : dJP6MT=RRd

    streamState : NonStreaming

    dataState : Ok

    statusCode : None

    statusText : All is well


    Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

    at ThomsonReuters.RFA.TS1.TS1Series.Decode(RFA_String name, RFA_String data)

    at ThomsonReuters.RFA.Example.StarterConsumer_TS1.StarterConsumer_TS1.ProcessMarketPriceResponse(OMMItemEvent evnt, RespMsg respMsg)

    at ThomsonReuters.RFA.Example.StarterConsumer_TS1.StarterConsumer_TS1.ProcessEvent(Event evnt)

    at ThomsonReuters.RFA.SessionLayer.Unmanaged.UnmanagedEventClient.processEvent(UnmanagedEventClient* , Event* event)

    at ThomsonReuters.RFA.Common.EventQueue.Dispatch(Int32 timeOut)

    at ThomsonReuters.RFA.Example.StarterConsumer_TS1.StarterConsumer_TS1.Run()

    at ThomsonReuters.RFA.Example.StarterConsumer_TS1.Program.Main(String[] args)

  • sanniel
    sanniel Newcomer

    umer.nalla

    In additions, please help to ask Data Helpdesk to advise the following RIC codes:

    EUROSTR=,DE1MT=RR,DE3MT=RR,DE6MT=RR,JP6MT=RR


    Many thanks.

  • Hi @sanniel

    You can raise the ticket using the link I provided earlier or wait till they respond with the initial ticket query and then ask for the additional information.

  • Hi @sanniel

    I was able to request JP6MT=RR with the StarterConsumer_TS1 example from RFANET v8.2.1.L1

    It could be a bug or issue with the older unsupported version you are using. If you can recreate the same issue with a supported version of RFA.NET then we can report it to the Developer Support team for further investigation.

  • Hi @sanniel

    I should also just point out that RFA is an older API and TS1 is an older interface.

    You can also access historical data using our newer RDP Historial Pricing API - which uses a HTTP RESTful interface where the data is returned in JSON format - much easier to use.

    As an example, I ran a historical-pricing/v1/views/interday-summaries API query for DE6MT=RR over a 20 day period and I got the attached result

    DE6MT=RR.txt

    If you want more information on the RDP Historical Pricing APIs please speak to your Refinitiv Account representative or your internal Market Data team.

    You can also see some tutorials here:
    PostMan Tutorial

    Python Tutorial

  • sanniel
    sanniel Newcomer
    Hi @umer.nalla ,

    May I know the status of
    the Content-type Ticket ?