RFA MD subscriber - No quality of service

Akechi Sato
Akechi Sato Explorer

We have RFA C++ based subscriber application.
The application is getting following message
on subscription


INFO: Subject: xxx state: 4 status: "No Quality of Service is available to
process subscription, timeout expired" status code: 3



Can you please explain when we can get "No quality of service" status?

Tagged:

Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    The status message "No Quality of Service is available
    to process subscription, timeout expired
    " could be generated by RFA in these 4
    situations.

    1. RFA
    subscribes market data from the service that is currently down

    xxx Status Status: No Quality of Service is available to
    process subscription, timeout expired State: 3 Status Code: 3

    2. RFA
    subscribes market data from the service that doesn’t exist

    xxx Status Status: No Quality of Service is available to
    process subscription, timeout expired State: 3 Status Code: 3

    3. RFA
    subscribes market data and the specified QoS doesn’t match the QoS provided by
    the service

    For example, the Qos of the service is real-time/tick-by-tick
    but the application specifies the best and worst QoS to be lower than
    real-time/tick-by-tick.

    _pQoS->setBestTimeliness(rfa::common::QualityOfServiceRequest::realTime);
    _pQoS->setWorstTimeliness(rfa::common::QualityOfServiceRequest::delayed);
    _pQoS->setBestRate(rfa::common::QualityOfServiceRequest::justInTimeFilteredRate);
    _pQoS->setWorstRate(rfa::common::QualityOfServiceRequest::slowestRate);
    _pMarketDataItemSub->setRequestedQualityOfService(*_pQoS);

    xxx Status Status: No Quality of Service is available to
    process subscription, timeout expired State: 3 Status Code: 3

    4. The most
    common issue is that RFA C++ attempts to make request but the infrastructure
    fails to deliver the image within the recoveryTimeout + waitTimeout interval,
    RFA will mark the item "Closed Recover" (State = 4)

    xxx Status Status: No Quality of Service is available to
    process subscription, timeout expired State: 4 Status Code: 3

    In this scenario, state is ClosedRecover (4) and
    status code is NoResources (3). This could be the forth scenario. If the
    application subscribes to a lot of items, you may consider tuning the value of
    \Sessions\<session name>\recoverTimeout and \Sessions\<session
    name>\waitTimeout
    in RFA configurations.

Answers

  • In this situation ,
    4. The most common issue is that RFA C++ attempts to make request but the infrastructure fails to deliver the image within the recoveryTimeout + waitTimeout interval, RFA will mark the item "Closed Recover" (State = 4)

    Is there a way to improve the situation from the infra perspective?

    Also , would RFA Java see the same error log & what's the RFA tuning parameter for Java?

  • @jirapongse.phuriphanvichai, I am having the same issue with the message:

    stt item:USDGBP status:No Quality of Service is available to process subscription, timeout expired state:3

    However, I have not altered any of the QoS code, I can see that the feed is up (and using tickbytick and realTime) and I know data is exists for this item. I'm using v7.6 C++ with MarketData and SSLED connections. Could you shed any light on what I'm doing wrong/how to correct it?

  • jirapongse.phuriphanvichai

    I am seeing similar message. Lookin for suggestions to correct the issue. Thanks

    12/19 18:21:38.941240 [2]: RfaFeed::ProcessMarketDataEvent(): Buffer Empty for [ELEKTRON_EDGE:ELEKTRON_EDGE.ANY.8795.T]: MsgType: Status, No Quality of Service is available to process subscription, timeout expired

    12/19 18:21:38.941254 [6]: ReutersFeed::EmptyBufferReovery(): *** ERROR *** No Record Found for ELEKTRON_EDGE.ANY.8795.T

    12/19 18:21:38.941281 [2]: RfaFeed::ProcessMarketDataEvent(): Buffer Empty for [ELEKTRON_EDGE:ELEKTRON_EDGE.ANY.9401.T]: MsgType: Status, No Quality of Service is available to process subscription, timeout expired

    12/19 18:21:38.941284 [6]: ReutersFeed::EmptyBufferReovery(): *** ERROR *** No Record Found for ELEKTRON_EDGE.ANY.9401.T