Not able to get updates when submitting post messages through the ommConsumer,

harsh_tripathi
harsh_tripathi Newcomer
edited April 16 in EMA

We are migrating from RFA to RTDSK EMA. The migration for consumer is done, and we are able to market data from trep server through ommConsumer.

Now that we are moving to the contributor part, we are facing some issues. When we try to submit post messages through the ommConsumer, we are not able to get updates when subscribing to that instrument. We don't get any exception in the try block for submitting the post message.

What are the possible things which could be going wrong here?

The ommConsumer →

m_ommConsumer = std::make_shared<OmmConsumer>(OmmConsumerConfig()

                                                .host(rmds_host.c_str())

                                                .operationModel(OmmConsumerConfig::UserDispatchEnum)

                                                .username(app_user.c_str()));

The submit try catch block →

void AppClient_NameSpace::onRefreshMsg(const RefreshMsg &refreshMsg, const OmmConsumerEvent & e)
{
try{
m_ommConsumer->submit(PostMsg()
.streamId(refreshMsg.getStreamId())
.postId(1)
.serviceId(refreshMsg.getServiceId())
.solicitAck(true).complete()
.payload(UpdateMsg().streamId(refreshMsg.getStreamId())
.name(refreshMsg.getName())
.payload(FieldList()
.addReal(22, 1000, OmmReal::ExponentNeg2Enum)
.addReal(25, 2000, OmmReal::ExponentNeg2Enum)
.complete()))
.complete(),
e.getHandle());
}
catch (const std::exception &exp)
{
std::cout << "Not able to post for RIC" << refreshMsg.getName() << "Exception: " << exp.what() << std::endl;
}
}
 

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @harsh_tripathi

    Thank you for reaching out to us.

    You can enable the XML trace log (XmlTraceToStdout or XmlTraceToFile) in the EMA configuration file to verify the incoming and outgoing messages.

    For example:

    		<Consumer>
    		
    			<Name value="Consumer_1"/>
    			<Channel value="Channel_1"/>
    			<Logger value="Logger_1"/>
    			<Dictionary value="Dictionary_2"/>
    			<XmlTraceToStdout value="1"/>
    		</Consumer>
    

    What is the source of the posting service?

  • harsh_tripathi
    harsh_tripathi Newcomer
    edited April 16

    Hi @Jirapongse

    I am getting this nack message

    <ackMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="6" containerType="RSSL_DT_NO_DATA" flags="0x32 (RSSL_AKMF_HAS_TEXT|RSSL_AKMF_HAS_MSG_KEY|RSSL_AKMF_HAS_NAK_CODE)" ackId="5" nakCode="RSSL_NAKC_DENIED_BY_SRC" text="[400]: Invalid Request" dataSize="0">
    <key flags="0x7 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME|RSSL_MKF_HAS_NAME_TYPE)" serviceId="297" name="USDDKK1M=STIRT_DL" nameType="1"/>
    <dataBody>
    </dataBody>
    </ackMsg>

    Not sure what you mean by the source of posting service? if you mean the service name, then it is ATS

    This is the postMsg body -

    <postMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="6" containerType="RSSL_DT_MSG" flags="0x66 (RSSL_PSMF_HAS_POST_ID|RSSL_PSMF_HAS_MSG_KEY|RSSL_PSMF_POST_COMPLETE|RSSL_PSMF_ACK)" postId="2" postUserId="0" postUserAddr="0.0.0.0" dataSize="47">
    <key flags="0x3 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME)" serviceId="297" name="USDDKK1M=STIRT_DL"/>
    <dataBody>
    <!-- rwfMajorVer="14" rwfMinorVer="1" -->
    <updateMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="5" containerType="RSSL_DT_FIELD_LIST" flags="0x8 (RSSL_UPMF_HAS_MSG_KEY)" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" dataSize="15">
    <key flags="0x2 (RSSL_MKF_HAS_NAME)" name="USDDKK1M=STIRT_DL"/>
    <dataBody>
    <fieldList flags="0x8 (RSSL_FLF_HAS_STANDARD_DATA)">
    <fieldEntry fieldId="22" data="0C03 E8"/>
    <fieldEntry fieldId="25" data="0C07 D0"/>
    </fieldList>
    </dataBody>
    </updateMsg>
    </dataBody>
    </postMsg>

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @harsh_tripathi

    I mean the server that process the post message. It may be the ATS server.

    I found the same error mentioned on this discussion. It may relate to the configurations on ADH.

  • @Jirapongse

    I checked with ADH team, the current ATS version in our DEV & UAT environments is 1.8.0 with our ADS & ADH versions as 3.8.1.L1.

    The post that you linked mentions that the config forwardOnStreamPostMsgKey should only be a problem for ADH 2.x . Is that correct?

    Is this config still relevant for the versions I mentioned?

    Changing this setting would require us to invite all other applications on the same platform to re-test their contribution mechanisms as they are currently not reporting any issues.

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    You need to contact the ADH and ATS support team via MyAccount to verify it.

    The NACK message should be sent by ATS. You need to check with the ATS team why the post message is invalid.

    <ackMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="6" containerType="RSSL_DT_NO_DATA" flags="0x32 (RSSL_AKMF_HAS_TEXT|RSSL_AKMF_HAS_MSG_KEY|RSSL_AKMF_HAS_NAK_CODE)" ackId="5" nakCode="RSSL_NAKC_DENIED_BY_SRC" text="[400]: Invalid Request" dataSize="0">

    <key flags="0x7 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME|RSSL_MKF_HAS_NAME_TYPE)" serviceId="297" name="USDDKK1M=STIRT_DL" nameType="1"/>

    <dataBody>

    </dataBody>

    </ackMsg>