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