RFA contribution over RCC

Hello,

We have RFA version RFAJ7.5.1.L1.all.rrg and we built an API and is working with MLIP.

We installed RCC but now is not working. We recompiled with RFA 8.2.4L1 but still not working.

Can you help with an investigation for find out the reason ?

What logs do you need for identify the cause ?

Best Regards,

Cristian

Best Answer

  • Jirapongse
    Answer ✓

    RFA Java can't directly post items to RCC.

    RFA Java can post items to RCC through RTDS, as shown in the red block.

    1707822259765.png

    The snippet code should look like this:

            public int doPost(PostInfo postInfo) {
    OMMMsg postMsg = _pool.acquireMsg();
    OMMMsg updateOMMMsg = _pool.acquireMsg();
    OMMEncoder postOMMEncoder = _pool.acquireEncoder();
    OMMEncoder payloadOMMEncoder = _pool.acquireEncoder();

    //Set a post Message that contains an update message
    postMsg.clear();
    postMsg.setMsgModelType(RDMMsgTypes.MARKET_PRICE);
    postMsg.setMsgType(OMMMsg.MsgType.POST);

    postMsg.setId(++_iPostId);

    int indicationFlags = 0;
    indicationFlags = OMMMsg.Indication.POST_COMPLETE | OMMMsg.Indication.POST_INIT | OMMMsg.Indication.NEED_ACK;

    postMsg.setIndicationFlags(indicationFlags);


            //Set Service name and item name in the post message
           postMsg.setAttribInfo("DDS_TRCE", "TRCCTEST02",
                    RDMInstrument.NameType.RIC);



    //Encode the post message
    postOMMEncoder.initialize(OMMTypes.MSG, 1000);
    postOMMEncoder.encodeMsgInit(postMsg, OMMTypes.NO_DATA, OMMTypes.MSG);


    //Set the update message that contains a field list
    updateOMMMsg.clear();
    updateOMMMsg.setMsgType(OMMMsg.MsgType.UPDATE_RESP);
    updateOMMMsg.setIndicationFlags(OMMMsg.Indication.DO_NOT_CONFLATE);
    updateOMMMsg.setRespTypeNum((short)1);
    updateOMMMsg.setMsgModelType(RDMMsgTypes.MARKET_PRICE);

    //Encode the update message with another encoder iterator
    payloadOMMEncoder.initialize(OMMTypes.MSG, 500);
    payloadOMMEncoder.encodeMsgInit(updateOMMMsg, OMMTypes.NO_DATA, OMMTypes.FIELD_LIST);

    payloadOMMEncoder.encodeFieldListInit(OMMFieldList.HAS_STANDARD_DATA, (short)0,
    (short)1, (short)0);
    //Encode a BID field
    payloadOMMEncoder.encodeFieldEntryInit((short)22, OMMTypes.REAL);
    payloadOMMEncoder.encodeReal(5000, OMMNumeric.EXPONENT_NEG4);

    payloadOMMEncoder.encodeAggregateComplete();

    //Encode the update message to the post message
    postOMMEncoder.encodeMsg((OMMMsg)payloadOMMEncoder.getEncodedObject());

    OMMMsg sendMessage = (OMMMsg)postOMMEncoder.getEncodedObject();

    //Send message wit the login stream
    _ommPostHandleItemCmd.setMsg(sendMessage);

    Handle postHandle = null;

    postHandle = _mainApp.getLoginHandle();

    int submitId = 0;
    _ommPostHandleItemCmd.setHandle(postHandle);
    submitId = _mainApp.getOMMConsumer().submit(_ommPostHandleItemCmd, postHandle);

    return submitId;

    }

    If you are still unable to post items to RCC, please enable tracing in the RFA Java via the ipcTraceFlags configuration to verify what the problem is.

    1707822624599.png

    With the ipcTraceFlags configuration, RFA will create a log file in the working directory which contains tracing.

Answers

  • Hello @cristian.besliu,

    RCC is a different (newer) means of contributions compared to MLIP. Essentially, there are two means of contribution to RCC -

    1. Direct contribution to RCC from API. This is only supported by the newer EMA and Websockets API

    2. Using a RTMDS plugin, which can forward local contributed data to RCC.

    Which method are you using. The second option will require additional setup in your market data system. Please see this article to learn more about available options.


  • Hello @Gurpreet ,

    We have TREP installed locally.

    We using direct contribution to RCC from API.

    Best Regards,

    Cristian

  • Pls see our Post message.postRic method.txt

  • Thanks for advice.

    We managed do do the contribution over RCC.