The impact of the MiFID II on RFA Java 7.6

We are using RFA7.6 and we cannot upgrade from 7.6 to 8 currently. Our application uses the toDate() method only for OMMDateTime and millisecond is enough for our usage. Will our application get any exception when it receives a microsecond or nanosecond timestamp?

Best Answer

  • Hello @Catherine Wong

    Even the application using RFA 7.6 calls the toDate() method
    only for OMMDateTime, the application still gets the error “Invalid size 7 for
    Time”(the application receives microsecond timestamp) or “Invalid size 8 for
    Time”( the application receives nanosecond timestamp) when the application gets
    data according to its/TIME type (OMMFieldEntry.getData(OMMTypes.TIME) or OMMFieldEntry.getData(OMMFieldEntry.getOMMType()) is called) before it calls
    toDate(). Anyway, this problem does not occur if the application uses RFA 8.x
    or higher supporting microsecond and nanosecond timestamp.

    To avoid the errors occurring on RFA 7.6 when it receives microsecond
    or nanosecond timestamp, the application can check if a field is OMMTypes.TIME
    and the length is more than 5 that means this is microsecond or nanosecond
    timestamp, do not decode the field. The snipped example application source code
    is shown below:

    //fiddef is an instance of com.reuters.rfa.dictionary.FidDef
    //fe is an instance of com.reuters.rfa.omm.OMMFieldEntry
    //data is an instance of OMMData
    //if a field is TIME
    if(fiddef.getOMMType()==OMMTypes.TIME) {
    if(fe.getData().getBytes().length>5) { //the field is microsecond or nanosecond timestamp which RFA 7.6 does not support
    System.out.println("This is microsecond or nanosecond timestamp, do not decode it.");
    break;//stop decoding this field and start decoding the next field
    } else { //the field is the millisecond or lower timestamp which RFA7.6 supports
    //decode & process the field

    }
    } else { //not Time types
    //decode and process not Time types

    }