Problem retrieving all the market prices for batch request.

I am composing a batch request to get the prices of several options of one underlying. The payload of the request contains 1191 option ticker in the form e.g. id1632097629324.
I received back the prices for several options, but for most of them the output message that is notified to the processEvent callback is not parsable. If I count the amount of correct output message and the amount of non parsable messages I get the original 1191 number of subscribed ticker.
In the attachment I show the type of request that I am sending and the un-parsable request that I receive for some of the subscribed ticker.
I would like to kindly ask you how I can avoid this and be sure to get data for each of the ticker I package in the request payload.
Thanks in advace
Best regards
Best Answer
-
Hi Gabriele,
Just need to step back a bit and clarify a few basics.
When you make a streaming request for a valid instrument, you initially receive a Refresh response, followed by any future Update response(s). If there is a change to the State/Status of the item you may also receive a Status response.
For an Invalid / non permissioned instrument, you would expect to receive a Status response only. Note that the streamState will be Closed - i.e. the event stream has been closed and therefore you would not get any future events such as Updates etc.
Therefore, regardless of single item request or Batch request, you should get back a Status response which would contain the symbol name for the Invalid request.
e.g. the following is output from the StarterConsumer_BatchView example for the invalid instrument UMER.L
Received MMT_MARKET_PRICE Status
serviceName : ELEKTRON_DD
symbolName : UMER.L
streamState : Closed
dataState : Suspect
statusCode : NotFound
statusText : The record could not be found
itemName : UMER.L
itemHandle : 0000000004564260
itemFrom : BatchItemList1.You should never receive an Update type response for an invalid Item.
If you can output / log the Status response then this should provide additional information on why some of your instruments are failing. e.g. invalid instrument or permission denied etc.
0
Answers
-
Hello Gabriele,
Are you able to request the RICs that are not being returned as single subscription requests?
0 -
Hi, thanks for the quick answer.
Yes, I am able to request the RICs as single subscription.
The problem is that, in the context of a batch request, packaged with a lot of RICs, some of them are not retrieved and I cannot see which one, since the HAS_ATTRIB_INFO is false and so the messge.getAttribInfo().getName() returns null.
0 -
There are two sub-questions:
1. How to see in the update what item is being returned?
What API are you using (are you using RFAJ 8)?
If yes, try adding to request an indication flag:
indicationFlags |= OMMMsg.Indication.ATTRIB_INFO_IN_UPDATES;
You should see AttribInfo.
2. Why more items are not being retuned?What infra are you connecting to? What is your permission (is your user permissioned for more items at a time than you are seeing returned)?
0 -
Are you handling events of type
com.reuters.rfa.omm.OMMMsg$MsgType.STATUS_RESP
?
In my experience when a user requests a RIC which doesn't exist, the message returned in this stream will indicate there's a problem -- for example:
queryMarketPriceService("FOOO.N");
results in:
StatusResponse [code=NOT_FOUND, streamState=CLOSED, dataState=SUSPECT, text=The record could not be found]]
Now granted this doesn't have the RIC but it's associated with the same handle that was returned when the query was made, so I can associate it directly with the same, in this case, market price.
Tom
0 -
Hi,
Thanks for your answers. I was able to figure out the issue I had. I am now able to get all the events and parse them; the ATTRIB_INFO_IN_UPDATES, gives me the evidence of the RICs I am subscribed to, so now it seems that I have all the prices.
Thanks
Best regards
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 685 Datastream
- 1.4K DSS
- 615 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 252 ETA
- 556 WebSocket API
- 38 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 652 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 193 TREP Infrastructure
- 228 TRKD
- 917 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛