How to perform an RFA SDK Nonstreaming Request

Hi, we are using JAVA RFA SDK. Recently, we found we getting warning log as follow: "com.reuters.rfa.connection.rssl.webullSpace.ommViewAppCon Received MARKET_PRICE, MsgType.UPDATE_RESP for item Not Available on a closed stream. The item may have been closed OR the Provider may have rejected the Batch Request"

We did constantly called register() and unregisterClient(), so this frequent register and unregister action might cause this warning message.

The scenario for us, in this case, is that we only interested in getting the snapshot data instead of the streaming data. So as long as we get the response message, we will unregister the RIC.

After reviewing the develop document, we found setting indictionFlags to OMMMsg.Indication.NONSTREAMING might be the registered behavior which we need(Section 6.3.3 in DEVELOPERS GUIDE JAVA EDITION).

So our question for this non-streaming request are:

1.Does the stream close immediately after the snapshot message received?

2.Will stream closed by NONSTREAMING indication registering immediately release the Aggregate Item Limit for current Reuters User Account?

Thanks

Best Answer

  • Hi @Yang Bai

    Using NONSTREAMING request means the API closes the stream on your behalf once it has delivered the snapshot to your application event handler.

    With regards to your 2nd question, I expect this should be the case but I am not 100% certain how the TREP / infrastructure behave in terms of exact timing as I am not a TREP / infrastructure expert.

    You can always double-check by creating a ticket for TREP or Elektron support team and asking them to confirm how quickly it reduces the Aggregate limit count once you close an item.

Answers

  • Thanks for your answer! I'll contact the support team for further information.

  • Hello @Yang Bai

    “Received MARKET_PRICE,MsgType.UPDATE_RESP for item Not Available on a closed stream.The item may have been closed OR the Provider may have rejected the Batch Request.” This message appears when RFA sends an item close to the infrastructure. Technically, the server should stop sending further messages to RFA. So, if RFA still receives any messages from a disconnected channel, it will show this message to inform the application. It is possible that the server is too busy and has not realized the item close because it is still pending in the incoming message queue. You opened and closed items frequently so it was possible that this caused the server was too busy and leaded you got the message.

    Anyway, this message is not harmful so you can ignore the message.

  • Great explanation, I also assume that the RFA end might to busy to close the stream simultaneously that why we look into the non-streaming register method.