question

Upvotes
Accepted
1 0 1 2

Issue whereby for a particular Instrument error is thrown with no further details

Hello One of our application teams is having an issue with a particular RIC that was working until 2 weeks ago. Now they have reported that the below code is throwing an error. They have asked what could be the causes of this throwing an error. I work for the TREP infrastructure and have captured the conversation (all below) between sink application and ads server this RIC which is called SONIAOSR= as well as another RIC that works which is called RONIAOSR=

RfaScopedEnvironment.cc

void processData(const ::rfa::common::Data& payload, const ::rfa::sessionLayer::OMMItemEvent& ie)

{

if ( ie.getClosure() != (&ric) )

{

LOG_CB_ERROR( "WARNING: RicData event has different closure for " << service.c_str() << "/" << ric.c_str() << " !!!" );

}

const ::rfa::common::Msg& msg = ie.getMsg();

const ::rfa::message::RespMsg& respMsg = static_cast<const ::rfa::message::RespMsg&>(msg);

if ( respMsg.getMsgModelType() != ::rfa::rdm::MMT_MARKET_PRICE )

{

return;

}

if ( result.getType() == cb::rfa::RfaValue::vtEmpty )

{

result.reset( env.decoder.decodeData( payload ).release() ); //------ This throws an error for SONIAOSR=

}

else

{

CB_LOG_LEVEL( "RicData received multiple times, ignoring later values", 3 );

}

dispatcher.terminate();

}

For SONIAOSR=, please see the attached file: trace.txt.

They are using rfa7.6.1.L1.solaris

treprfarfa-apierror
trace.txt (32.4 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.

1 Answer

Upvotes
Accepted
11.3k 25 8 14

The data dictionary (RDMFieldDictionary and enumtype.def) might not be up to date. It is possible that some fields might be added.

RFA will throw an invalid usage exception, if an application tries to get field's definition for a Field ID that is not in the dictionary. You may update the dictionary used by the application. If the application downloads dictionary from server, the dictionary files needs to be updated on the server. Otherwise, the local dictionary files should be updated.

However, we would recommend adding a try/catch block to catch the exception, so you can get the detail information about the exception.

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.