what status message is expected from publisher when the Instrument is currently not available.

yathing.ullal
yathing.ullal Newcomer
edited 3:00AM in RFA

Hi All,

I would like to briefly explain the scenario:

We have a publisher that sends a Service Up message, but initially, no instruments are available. Instruments are created dynamically, so it's not possible to expect all of them to be available immediately.
In this case, what message is expected from the publisher to ensure the end user receives the data once it becomes available?

RSSL_STREAM_CLOSED or RSSL_STREAM_CLOSED_RECOVER

Second scenario:

Out of 10 requested instruments, only 5 are actually available. The remaining 5 have expired and will never be served by the publisher.
How should we handle timeouts or negative acknowledgments for these invalid instruments?

Many Thanks,

Tagged:

Answers

  • Hello @yathing.ullal

    The key difference between the CLOSED and CLOSED_RECOVER is the recovery of data. A CLOSED implies that the instrument does not exist and will never be available again. The application/SDK should not try to subscribe to this instrument again. This should be used in the second scenario that you describe - the expired instruments that will never be available again.

    A CLOSED RECOVER, implies that the instrument is not currently available. It might become available at some time in future and the app should try again at a later time.

  • yathing.ullal
    yathing.ullal Newcomer
    edited June 18

    Hi Gurpreet, Many Thanks for the suggestion, it's very clear now that I definitely have to use CLOSED_RECOVER, as the Instruments will be available anytime, but I am still unclear how should we handle wrong or expired Instruments, as we have set CLOSED_RECOVER it will wait.

  • For invalid or expired instruments, the publisher should send a Closed status message. See this example that infrastructure sends for an instrument that does not exist -

    StatusMsg
        streamId="5"
        domain="MarketPrice Domain"
        state="Closed / Suspect / Not found / '**The record could not be found'"
        name="INV.ALID"
        nameType="1"
        serviceId="257"
        serviceName="ELEKTRON_DD"
    StatusMsgEnd