question

Upvotes
Accepted
3 0 0 3

RFA8 consumer initial refresh does not send all fields

Market price updates are provided for custom RICs. Each update will contain data for either the BID or the ASK field, alongside some time fields.

Our consumer receives these updates correctly, two examples below, one for BID and one for ASK.

1709897042222.png

However when the consumer is initially started for the same RIC, the refresh message returns data for the BID field, but does not display the state of the ASK field. See below.

1709897080158.png

Why is the ASK field not provided, even though it has a non-empty state? On startup, we require the accurate state for all fields, which we believe should be sent in the initial refresh message?

We are referencing RFA8_NET150_x64.dll

Many thanks for your help!

#technology#productrfafieldssnapshot-pricingrefreshrefresh-message
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
80.2k 259 52 75

@myuranb

Typically, the refresh message supports the clear cache flag which indicates that the stream’s stored payload information should be cleared.

You may need to enable tracing in the API to verify the outgoing messages published by the NI Provider.

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 @Jirapongse & @Gurpreet


I am publishing the outgoing messages in the NI Provider. Does the initial Refresh message sent by the NI Provider need to contain all the possible fields that I would like a Consumer Refresh to receive (even if their values are unknown at that time)?

At the moment only some fields are sent in the NI Provider Refresh message, and other fields are published via subsequent Update messages. Could this be the issue?

Thanks again.

Hi @myuranb,

By default behavior of ADS is to not update the cache from the fields in the update message. Your infrastructure admin will have to enable the parameter: buildCacheFromUpdates, if you want this functionality.

Or, the NI publisher should publish all the fields in the refresh message - including blanks

Upvotes
22.6k 59 14 21

Hi @myuranb,

You mentioned custom RIC. Is this coming from an interactive publisher in your RTMDS? If so, the cache is managed by that application and it is responsible for sending the Refresh message.

You should also turn on App logger in the RFA to capture the raw messages.

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 your response @Gurpreet.

We use a non-interactive provider to push updates (Bid or Ask) to an ADH.

But any consumer connecting to the ADH is not receiving all the fields in the cache when the initial refresh image is sent. It appears to be only sending the latest Bid update data, while the Ask is not included.

Is there any missing flag / configuration on the consumer to ensure we receive all fields, or should this be the default behavior for a refresh message?

Hi @myuranb,

There is no flag in the consumer which will suppress getting particular fields in Refresh message. There is a View feature (field filtering at ADS), but that is not enabled in your code - or else your application would not have received ASK in the update message either.

At this point I would ask that you check the ADS logs to see why this is so. It is possible that NI publisher is misconfigured, and is somehow causing the the ADS cache to be cleared.

Thanks again @Gurpreet. I will request the ADS logs (from another team). In the meantime, I am in control of the NI Provider implementation - do you know the (mis)configuration that may cause the ADS cache to be cleared? It is strange that is it always the BID that is returned and not the ASK....
Upvotes
3 0 0 3

Many thanks @Gurpreet.


So to confirm, if the Provider Refresh message publishes fields A, B, & C, and an Update message publishes field D, then the Consumer initial Refresh message received will contain A, B, C & D, IF the parameter buildCacheFromUpdates is enabled?


Alternatively, if the Provider Refresh message publishes A, B, C & D, followed by Update messages for these fields, the Consumer Refresh message received will contain the latest cached values for A, B, C & D?

Many 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.

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.