question

Upvotes
Accepted
3 0 0 1

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

#productrfa-apijavacontributions
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hi @cristian.besliu ,

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?
If so please can you click the 'Accept' text next to the appropriate reply? This will guide all community members who have a similar question.

Thanks,
AHS

Upvotes
Accepted
79.2k 251 52 74

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.


1707822259765.png (157.3 KiB)
1707822624599.png (21.8 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
22.1k 59 14 21

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.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
3 0 0 1

Hello @Gurpreet ,

We have TREP installed locally.

We using direct contribution to RCC from API.

Best Regards,

Cristian

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
3 0 0 1

Pls see our Post message.postRic method.txt


postric-method.txt (3.2 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
3 0 0 1

Thanks for advice.

We managed do do the contribution over RCC.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.