What RICs can I subscribe using RT-Optmized(TREP in CLoud) free trial version?

Hi,

I am using RTO free trial to do some test on market data such as data fields and data frequencey. I was able to subscribe RIC /IBM.N, which is from NYSE. However, I could not subscribe to NASDAQ BASIC or consolidated exchange, such as /IBM.NB, /AAPL.O, /AAPL.NB. I also tried GBP=, and it says record not found. Please see my screenshot below.

image


What RICs could I subscribe to using RTO free trial to test data quality?

Thank you.



Tagged:

Best Answer

  • umer.nalla
    umer.nalla LSEG
    Answer ✓

    Hi @Xueying

    I am unable to recreate the above scenario in my virtual Linux environment, I tried the following with the example 113.:

    sh-4.2# ./Cons113 -username <> -password <> -clientId <> -itemName /EUR=

    loggerMsg
        TimeStamp: 13:16:15.778
        ClientName: ChannelCallbackClient
        Severity: Success
        Text:    Received ChannelUp event on channel Channel_4
            Instance Name Consumer_4_1
            Connected component version: ads3.4.2.L1.linux.tis.rrg 64-bit
    loggerMsgEnd

    RefreshMsg
        streamId="5"
        domain="MarketPrice Domain"
        Solicited
        RefreshComplete
        ClearCache
        state="Open / Ok / None / ''"
        itemGroup="01 27"
    permissionData="03 01 01 36 3C"
        qos="RealTime/JustInTimeConflated"
        seqNum="13038"
        name="/EUR="
        nameType="1"
        serviceId="257"
        serviceName="ELEKTRON_DD"
        Payload dataType="FieldList"
            FieldList FieldListNum="99" DictionaryId="1"
                FieldEntry fid="1" name="PROD_PERM" dataType="UInt" value="363"

    I am not a Linux expert, so can only assume this is an environmental issue with your Linux setup?

Answers

  • Hi @Xueying

    Your best option is to ask your Refinitiv Account team to confirm which instruments you are licenced for and if they can enable delayed RICs for the exchanges you are interested in.

    In the meantime, you can try delayed RICS like '/EUR=', '/GBP=', '/SEK=' so that you can get an idea of how the data Refresh and Updates look like.


  • Xueying
    Xueying Newcomer

    Hi,

    Thank you for your answer. Refinitiv Account team told me we are licensed for NYSE and FX RICs such as EUR=, CAD=, GBP=. However, I tried /GBP= but it says <Item State: Closed / Suspect / Not found / '**The record could not be found'>.

    image

    Do you know why this happened?


    Thank you.

  • Hi @Xueying

    I cannot see any reason why the above RICs would not work - I have just tried a few on an RTO endpoint and they work fine.

    Does the console output show which RTO endpoint you are connected to - so I can try against the same one? The endpoint would look something like: emea-2-t3.streaming-pricing-api.refinitiv.com


  • Xueying
    Xueying Newcomer

    Hi,

    Unfortunately, I did not see anything like that, only a connected component version: ads3.4.2.L1.linux.tis.rrg 64-bit. Is this something to do with they way I add this RIC?

    I used C++ SDK and add this RIC through

    OmmArray().addAscii(EmaString("/GBP=",6)).

  • Hi @Xueying

    Can you please try running the example in Examples\Training\Consumer\300_Series\370_MP_Batch which is provided with the RT-SDK?

    or modify your code to something like e.g.

    UInt64 handle = consumer.registerClient( ReqMsg().serviceName( "ELEKTRON_DD" )
                .payload( ElementList().addArray( ENAME_BATCH_ITEM_LIST, OmmArray().addAscii( "/GBP=" ).addAscii( "/EUR=" ).complete() ).complete() ), client );


  • Hi @Xueying

    Also, if you are new to EMA C++, I also recommend you work through the 1st 4 Consumer Tutorials to get a good basic understanding.
    Tutorials | Refinitiv Developers


  • Xueying
    Xueying Newcomer

    Hi,

    if I do OmmArray().addAscii( "/GBP=" ).addAscii( "/EUR=" ).complete() ).complete(), there will be an error:

    image

    That is the reason why I add a length parameter in EmaString() function, OmmArray().addAscii(EmaString("/GBP=",6)).

    Here is my full code.

      AppClient appClient1(kcon_1);
        ConsumerManager consumerMgr1( cfg["consumername"].getString(), cfg["username"].getString(), cfg["password"].getString(), cfg["clientid"].getString(),cfg["proxy_host"].getString(),cfg["proxy_port"].getString() );
        consumerMgr1.getOmmConsumer().registerClient( ReqMsg().serviceName( EmaString(cfg["servicename"].getString().c_str()) ).payload( ElementList().addArray( ENAME_BATCH_ITEM_LIST, OmmArray().addAscii( "/GBP=" ).addAscii( "/EUR=" ).complete() ).complete() ), appClient1, (void *)"consumerMgr1" );
        consumerMgr1.start();
  • Hi @Xueying

    I have checked the Linux RT-SDK example for Examples\Training\Consumer\300_Series\370_MP_Batch and I don't see the need to specify the length when adding items to the Batch request. However, I will install and configure the latest Linux build later and test it out to confirm.

    In the meantime, so that you can make progress, please try registering each RIC individually - rather than using batch request - to see if that will allow you to proceed:

    consumer.registerClient( ReqMsg().serviceName( "ELEKTRON_DD" ).name( "/EUR=" ), client );
    consumer.registerClient( ReqMsg().serviceName( "ELEKTRON_DD" ).name( "/GBP=" ), client );


  • Xueying
    Xueying Newcomer

    Hi,

    I registered one RIC "/EUR=" and there is another error.

    ommConsumer.registerClient( ReqMsg().serviceName( "ELEKTRON_DD" ).name( "/EUR=" ), appClient1 );

    image


    I also tried "/0700.HK", "/EUR", "EUR", they all worked fine even if some of them could not be found. I guess it is "=" that caused the problem.


  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Xueying

    You may need to enable RSSL tracing to verify the problem. The tracing can be enabled by adding the following configuration into the consumer configuration.

    <XmlTraceToFile value="1"/>

    For example, the Cons113 example uses the Consumer_4 so I add the configuration in the Consumer_4 section.

            <Consumer>
                <Name value="Consumer_4"/>
                <ChannelSet value="Channel_4"/>
                <Logger value="Logger_1"/>
                <Dictionary value="Dictionary_2"/>
                <XmlTraceToFile value="1"/>
            </Consumer>

    After running the application, the EmaTrace_nnnnnn.xml file will be created in the working directory.

    Next, please remove the value of the AuthenticationToken in the Login request message, and then share the file.

    <requestMsg domainType="RSSL_DMT_LOGIN" streamId="1" containerType="RSSL_DT_NO_DATA" flags="0x4 (RSSL_RQMF_STREAMING)" dataSize="0">
        <key  flags="0x26 (RSSL_MKF_HAS_NAME|RSSL_MKF_HAS_NAME_TYPE|RSSL_MKF_HAS_ATTRIB)"  name="" nameType="5" attribContainerType="RSSL_DT_ELEMENT_LIST">
            <attrib>
                <elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">
                    <elementEntry name="AuthenticationToken" dataType="RSSL_DT_ASCII_STRING" data="<removed>"/>
                    <elementEntry name="ApplicationId" dataType="RSSL_DT_ASCII_STRING" data="256"/>
                    <elementEntry name="ApplicationName" dataType="RSSL_DT_ASCII_STRING" data="ema"/>
                    <elementEntry name="Position" dataType="RSSL_DT_ASCII_STRING" data="127.0.0.1/net"/>
                </elementList>
            </attrib>
        </key>
        <dataBody>
        </dataBody>
    </requestMsg>


  • Hi @Xueying

    I also tried a batch request for /EUR= and /GBP= works fine.

    Please follow my colleague's advice to enable trace output and attach.

    Thanks