If I have a batch request but one RIC in the request is invalid, then it seems to fail over the whole batch
Trying to understand what these completion events are and what triggers them
Hello @Ethan Wong
Even batch feature sendsone request with multiple items, the items are opened/closed individually as figure shown below:
Hence, invalid RIC does not fail over the whole batch. The application still receive data of valid RICs but it will get status response indicating that the steam for invalid RIC is closed as shown in example below:
- Refresh message returned for a valid RIC
Msg Type: MsgType.REFRESH_RESP Msg Model Type: MARKET_PRICE Indication Flags: REFRESH_COMPLETE | CLEAR_CACHE Hint Flags: HAS_ATTRIB_INFO | HAS_ITEM_GROUP | HAS_PERMISSION_DATA | HAS_QOS | HAS_RESP_TYPE_NUM | HAS_SEQ_NUM | HAS_STATE State: OPEN, OK, NONE, "All is well" Qos: (RT, TbT) Group: 00040843435879e8 PermissionData: 030843213c ( 0x03,0x08,0x43,0x21,0x3c ) SeqNum: 45630 RespTypeNum: 0 (RespType.SOLICITED) AttribInfo ServiceName: API_ELEKTRON_EPD_RSSL ServiceId: 2115 Name: JPY= NameType: 1 (RIC) Payload: 2090 bytes FIELD_LIST FIELD_ENTRY 1/PROD_PERM: 213 FIELD_ENTRY 2/RDNDISPLAY: 153 FIELD_ENTRY 3/DSPLY_NAME: DANSKE BANK COP
- Status message returned for an invalid RIC
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: API_ELEKTRON_EPD_RSSL ServiceId: 2115 Name: IBM.M NameType: 1 (RIC) Payload: None
Normally, the stream of batch request is closed after the request is sent to the server regardless it contains valid/invalid RICs. Hence, the application receives completion events as example below:
Receive a COMPLETION_EVENT, com.reuters.rfa.internal.session.omm.OMMBatchSubHandleImpl@4a8171b
This completion event does not close the EventQueue or terminates the consumer. The application still receive data of valid RICs.
Thanks for the answer !
Makes sense to me
It was an internal error breaking the batch it turns out and thanks for the explanation on why we receive a completion event from a batch request