How do we get more information regarding the reason for an Event type of Event.COMPLETION_EVENT?
Best Answer
-
Basically, the completion event itself does not provide the reason of how the data stream is closed. The reason/information can be found in the status message that comes before the completion event so the application should look for the detail of the stream closure in the status message rather than in the completion event.
Here are the examples of status messages when the stream is closed.Invaid RIC Item:
MESSAGE
Msg Type: MsgType.STATUS_RESP
Msg Model Type: MARKET_PRICE
Indication Flags:
Hint Flags: HAS_ATTRIB_INFO | HAS_STATE
State: CLOSED, SUSPECT, NOT_FOUND, "The record could not be found"
AttribInfo
ServiceName: hEED
ServiceId: 2114
Name: TEST.BK
NameType: 1 (RIC)
Payload: None
No Permission:
MESSAGE
Msg Type: MsgType.STATUS_RESP
Msg Model Type: MARKET_PRICE
Indication Flags:
Hint Flags: HAS_ATTRIB_INFO | HAS_STATE
State: CLOSED, SUSPECT, NOT_ENTITLED, "Access Denied: User req to IDN for Specialist - SDPREREINTO"
AttribInfo
ServiceName: hEED
ServiceId: 2114
Name: BRL10MNDF=
NameType: 1 (RIC)
Payload: None0
Answers
-
If one ignores the explicit completion events in RFA/RSSL you can simply use msg.isFinal() under processEvent() to gain stateful awareness of the event. For RFA/SSL you can use event.isEventStreamClosed() instead.
0 -
Thanks Steve. We're trying to figure out how to determine if the completion event was a result of an entitlements
issue versus some other issue. Are the other categories of reasons which can result in a
completion event?0 -
Is your question closer to: What are the reason a subscription can be closed?
0 -
As in (a) data does not exist { retired or not yet launched }, (b) infrastructure failure, (c) DACS permissions, (d) API failure?
0 -
Would those be the complete list? What about time of request? We have seen cases in which we subscribed to a RIC 8 hours before the market opens and get a Completion_Event, but later on closer to the market open, we subscribe successfully.
We are getting thousands of these events every day and we are not sure why. Thank you.
0 -
[Edited] The completion event will be sent as final event from an event stream. It indicates that the event's stream has been closed, when the application call unregisterClient() to close the event stream. It should be an issue stated by Jirapongse below.
0 -
There are two ways in which an event stream can be
closed:- The application closes the stream via unregisterClient()
call to RFA. In this case, RFA might dispatch additional events that were in
flight due to race condition
- The application receives an event that closes
the stream. In this case, the infrastructure sends the response with status
closed and status text to close the stream. This case includes the invalid
items, permission issues, and infrastructure failure. The application can verify the reason from the status text.
An application should call isEventStreamClosed() function
on incoming messages to determine whether an event stream is closed. Note that
if an application registers for completion events and closes the event stream
via an unregisterClient() call to RFA, the application must be prepared
to receive either a completion event or some other event that closes the
stream. If the application receives an event closing the stream other than a
completion event, the application will not receive the completion event.Normally, the application uses the completion events when it
relinquishes the requests from different threads than the dispatching thread. After
unregistering the handle, the application must wait for the completion event or
verify isEventStreamClosed() before deleting an instance of an Event
Handler.I would like to suggest upgrading the application to use the
latest version of RFA C++ (7.6 or 8.0) because there are a lot of issues fixed
regarding the completion event.0 - The application closes the stream via unregisterClient()
-
They would be new instruments not yet registered in Reuters, such as rolling options, bonds, futures.
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
- 684 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
- 249 ETA
- 554 WebSocket API
- 37 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
- 643 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
- 26 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 192 TREP Infrastructure
- 228 TRKD
- 915 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 中文论坛