Sending permData from Contex application to DACS

Options

Hi,

We are sending the permData for Contex application to DACS in the following format by enabling the flag "RSSL_PSMF_HAS_PERM_DATA"

permData="0301
6620 00C0"

Based on the above values.

03 – The header

01 66 – Service ID in
HEX

20 00 – PE Code in
Decimal

C – Terminator

0 – is just padding

But the DACS is display wrong permData and getting NAK in Contex application.

RSSL_PSMF_HAS_PERM_DATA)" seqNum="6" postId="6" permData="CC" postUserId="0"

Tagged:

Best Answer

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Basavaraj.Baluchigi

    Please explain more about the problem and share the connection diagram.

    In my understanding, the Contex application sent a post message to TREP with permData="0301 6620 00C0". However, the TREP has changed the permData to "CC" while forwarding the post message to the contribution server. Then, the Contex application got the NAK message for that post.

    Is it correct?

  • Thanks for your reply.

    You are right Contex application sending post message to TREP-->DACS.

    The flow is as below:

    CONTEX > ADS (ATS_CORE) > ATS > DACS

    The requirement here is Contex application has to send DACS Enabled permissioning DATA to TREP(ATS) at each record set level.We have following function in Contex(UPAMessageCodec.h) which will set the permissioning data in Post Message and sends to TREP(ATS).

    template<class T> RsslRet UPAMsgBuilder<T>::SetDacsPermissioning( int nEnableDacsPermissioning ) {

    unsigned int final_Value = 3 | 358 | 8192 | 12;

    const std::string& value = std::to_string( static_cast<long long>(final_Value));

    m_message.permData.data = const_cast<char *>( value.c_str() ); m_message.permData.length = static_cast<RsslUInt32>( value.length() );

    return RSSL_RET_SUCCESS;

    }

    In above function we have hard coded the header and Terminator values for Testing.

    unsigned int final_Value = 3 | 358 | 8192 | 12;(In Decimal)

    03 – The header

    01 66 – Service ID in HEX

    20 00 – PE Code

    C – Terminator

    0 – is just padding

    My query is here whether the filling of permData in above function(SetDacsPermissioning) is proper?if it's wrong how we need to fill permData with headers,terminators,PE Code(PROD_PERM) so that permData should be displayed properly in DACS and get ACK message to Contex applicaton