Does a completion event close the EventQueue supplied or terminates the consumer, as it were?

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

Best Answer

  • Hello @Ethan Wong

    Even batch feature sends
    one request with multiple items, the items are opened/closed individually as figure shown below:

    image

    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.

Answers

  • 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