How to detect a closing run event in RFA 7.3+

My demo is using RFA 7.3 & 7.5 with RSSL connection. I would like to detect whether a message update event is a closing run event. In OMMItemEvent class, I can't find any useful function to identify it.

Could you tell me how to detect a closing run event?

Best Answer

  • Hi @yujin.xu11

    I could not find an example that explicitly checks for CLOSING_RUN but I did find a snippet of code which dumps out the RespTypeNum value converted to a string:

     private static void dumpRespTypeNum(OMMMsg msg, PrintStream ps)
     {
        if (msg.getMsgType() == OMMMsg.MsgType.REFRESH_RESP)
        {
            ps.println(" (" + OMMMsg.RespType.toString(msg.getRespTypeNum()) + ")");
        }
        else
        // msg.getMsgType() == OMMMsg.OMMMsg.MsgType.UPDATE_RESP
        {
            if ((msg.getMsgModelType() >= RDMMsgTypes.MARKET_PRICE)
                        && (msg.getMsgModelType() <= RDMMsgTypes.HISTORY))
            {
                ps.println(" (" + RDMInstrument.Update.toString(msg.getRespTypeNum()) + ")");
            }
        }
     }

    The key things to note is that you are looking for a

    • msg.getMsgType() == OMMMsg.OMMMsg.MsgType.UPDATE_RESP and
    • msg.getMsgModelType() == RDMMsgTypes.MARKET_PRICE

    If so, you can call msg.getRespTypeNum() and compare the value with the above CLOSING_RUN value or other update types as listed in the RDMUsage Guide under MarketPrice Update Message.

    Note that the above online documentation link is to the latest RFA Java version 8.x.
    The RFA v7.3 you are using is approx 9 yrs old and has not been supported for quite some time now. The oldest supported version in RFA v7.6.

    You can find the latest and above older supported versions under the Download section



Answers

  • Hi @yujin.xu11

    Please see this previous answer as well as this one How to detect closing run

    You have not mentioned which RFA language version you are using - in RFA Java, for an Update type message you can check the RespType to check for the following value

    RespTypeNum : RDMInstrument.Update.CLOSING_RUN =6

    In C++ you would check for the value

    rfa::rdm::INSTRUMENT_UPDATE_CLOSING_RUN = 6

    However, please note that the above behaviour is exchange/asset class-specific so you would need to raise a Content ticket with some examples of the RIC codes you are interested in to confirm if the above is published for your particular data set.

  • Java is used in my project. Could you give me a simple example?


    I found the com.reuters.rfa.example.framework.sub shipped in RFA package was somewhat complicated.