question

Upvotes
Accepted
5 0 0 1

Issue with real time updates for securities that are added intraday or end of day

We use Refinitv Elektron SDK API (ema.jar, upa.jar, upaValueAdd.jar version 3.5.0.0) to connect to Refinitiv to get market data. We tested the scenario of Real time updates for securities that are added intraday or end of day, but we are not getting any updates for product addition intraday (the page RIC was not updated with the new linkage).

Expected behavior is that if we already have a subscription to a page/chain RIC and a new security is added under that page/chain RIC, the page/chain RIC will be updated with the new linkage in real time.


Use case: We were expecting the following securities for US Treasury to be available intraday when announced (https://www.treasurydirect.gov/instit/instit.htm?upcoming).

Bills 912796D89 (WI=1), 912796F87(WI=1) with Announcement Date - 2021-03-09 were expected to be available at 2021-03-08 17:50:16,558 EST.

Cash Management Bill 912796H93 (WI=1) with Announcement date - 2021-03-09 was expected to be available at 2021-03-09 12:08:06,706 EST.


On the Refinitiv feed, the page RIC was not updated with the new linkage, for the corresponding RIC's (US1MTWI=TWEB, US2MTWI=TWEB) and (US119D713=TWEB). Our component(subscribing to Refinitiv) was running till 18:34 and didn’t get any updates on the feed (which was expected).

After we restarted our component (subscribing to Refinitiv) at 18:35, it received the updates for RICs US1MTWI=TWEB, US2MTWI=TWEB and US119D713=TWEB under the page ric.


We subscribe to the below mentioned chains (and dynamically to the instruments listed under each page) using following code.


Chain Subscription:

ReqMsg reqMsg = EmaFactory.createReqMsg();

ommConsumer.registerClient(reqMsg.serviceName("IDN_SELECTFEED").name(chainName), ommConsumerClientChainListenerInstance);


RegisterClient is invoked for the following chains (chainName variable is replaced with the individual chain names)

"0#USTSY=TWEB", "0#USTIPS=TWEB", "0#USTSYFRN=TWEB", "0#US2YSTRIP=TWEB", "0#US3YSTRIP=TWEB", "0#US5YSTRIP=TWEB", "0#US7YSTRIP=TWEB", "0#US10YSTRIP=TWEB", "0#US20YSTRIP=TWEB", "0#US30YSTRIP=TWEB", "0#US1MT=TWEB", "0#US3MT=TWEB", "0#US6MT=TWEB", "0#US1YT=TWEB", "0#US2YT=TWEB", "0#US3YT=TWEB", "0#US5YT=TWEB", "0#US7YT=TWEB", "0#US10YT=TWEB", "0#US20YT=TWEB", "0#US30YT=TWEB", "0#USTIO=TWEB"


Instrument Subscription:

ReqMsg reqMsg = EmaFactory.createReqMsg();

ommConsumer.registerClient(reqMsg.serviceName("IDN_SELECTFEED").name(instrumentName), ommConsumerClientInstrumentListenerInstance);


Is there some open issue on Refinitiv side that is causing the issue where clients are not getting the Real time updates for securities that are added intraday or end of day ?

Or do we need to use some specific API to be able to get the Real time updates for securities that are added intraday or end of day ?

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-api
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
15.2k 40 12 19

Hello @hardeepsangha,

Subscription to a chain RIC is not different from subscription to an equity instrument for example. Just like an equity, an initial refresh is sent and as the activity happens, the updates containing the deltas are sent. Same goes on for chains too. Actually, the API and infrastructure do not even know the difference between an equity an a chain - they both are MarketPrice messages. The decoding application has to handle the data differences.

So to verify your statement, I would ask that you use a simple consumer sample ex100_MP_Streaming from the latest RTSDK samples and subscribe to the chain RIC and verify that the updates are not being sent. Please turn on the logging of the OMM messages and attach them here for our diagnosis.

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

Hi Gurpreet

Regarding switching on the logging of OMM messages. I will capture RefreshMsg/UpdateMsg updates within the logs. Please let me know if you are referring to some other logging.

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
15.2k 40 12 19

No, I am referring to turning on the OMM message logging in the SDK. It will capture the raw refresh and update messages from the infrastructure.

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

Hi Gurpreet,

If I am correct, I have to enable this flag <XmlTraceToStdout value="1"/>

We are initializing the consumer using following code (we don't define the channel config in xml). Is there an way by which I can pull the default channel created by the API and can enable this flag ?

OmmConsumerConfig config = EmaFactory.createOmmConsumerConfig();
OmmConsumer consumer = EmaFactory.createOmmConsumer(config.host(server).username(userName).applicationId(applicationId));
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
15.2k 40 12 19

Yes, you can use either configuration xml file or create config in code. Refer to this article on EMA configuration which also explains logging.

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.