Using the UPA C++ API, I am setting the RsslUpdateMessage .flag = RSSL_UPMF_DO_NOT_CONFLATE. However I am seeing a flag value of 0x0 and not 0x80 as expected in the the rmdstestclient output:
<!-- rwfMajorVer="14" rwfMinorVer="0" -->
<updateMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="5" containerType="RSSL_DT_FIELD_LIST" flags="0x0" updateType="0" dataSize="91">
<dataBody>
<fieldList flags="0x9 (RSSL_FLF_HAS_FIELD_LIST_INFO|RSSL_FLF_HAS_STANDARD_DATA)" fieldListNum="0" dictionaryId="0">
<fieldEntry fieldId="12073" dataType="RSSL_DT_RMTES_STRING" data="IBM"/>
<fieldEntry fieldId="1067" dataType="RSSL_DT_TIME" data=" 13:10:46:000"/>
<fieldEntry fieldId="1021" dataType="RSSL_DT_REAL" data="9469596"/>
<fieldEntry fieldId="22" dataType="RSSL_DT_REAL" data="145.64"/>
<fieldEntry fieldId="393" dataType="RSSL_DT_REAL" data="145.64"/>
<fieldEntry fieldId="270" dataType="RSSL_DT_ENUM" data="16"/>
<fieldEntry fieldId="8935" dataType="RSSL_DT_ENUM" data="2"/>
<fieldEntry fieldId="17" dataType="RSSL_DT_DATE" data="8/31/2018"/>
<fieldEntry fieldId="5" dataType="RSSL_DT_TIME" data=" 17:10:46:846"/>
<fieldEntry fieldId="4148" dataType="RSSL_DT_UINT" data="61846846"/>
<fieldEntry fieldId="3386" dataType="RSSL_DT_DATE" data="8/31/2018"/>
<fieldEntry fieldId="1025" dataType="RSSL_DT_TIME" data=" 17:10:46:846"/>
<fieldEntry fieldId="3855" dataType="RSSL_DT_UINT" data="61846846"/>
</fieldList>
</dataBody>
</updateMsg>
Is there some other value that I am missing that needs to be set? The ADH appears to be ignoring the value when I send it across the wire.
Yes, you are correct. RSSL_UPMF_DO_NOT_CONFLATE is equivalent to RespMsg::DoNotFilterFlag in RFA C++.
The code that I used to set the RSSL_UPMF_DO_NOT_CONFLATE flag in UPA C is:
updateMsg.flags |= RSSL_UPMF_DO_NOT_CONFLATE;
I have also tested with the ADH and the ADS is 2.6.11.L1. The rmdstestclient can get the RSSL_UPMF_DO_NOT_CONFLATE flag properly from ADS.
<updateMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="5" containerType="RSSL_DT_FIELD_LIST" flags="0x98 (RSSL_UPMF_HAS_MSG_KEY|RSSL_UPMF_HAS_SEQ_NUM|RSSL_UPMF_DO_NOT_CONFLATE)" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" seqNum="0" dataSize="38"> <key flags="0x7 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME|RSSL_MKF_HAS_NAME_TYPE)" serviceId="4512" name="IBM.N" nameType="1"/> </updateMsg> TRDPRC_1 : REAL 2 : [12 1/2] BID : REAL 2 : [1.03] ASK : REAL 2 : [1.07] ACVOL_1 : REAL 5 : [100000.00] NETCHNG_1 : REAL 3 : [2.15] ASK_TIME : TIME 3 : [13:39:51:000]
I have tested with ADH 3.2.1.L1 and ADS 3.2.1.L1. The consumer application can retrieve the update message with the RSSL_UPMF_DO_NOT_CONFLATE flag properly.
The provider published the following update message to ADH.
<!-- End Message (Channel IPC descriptor = 196) --> <!-- Outgoing Message (Channel IPC descriptor = 196) --> <!-- Time: 16:11:13:862 --> <!-- rwfMajorVer="14" rwfMinorVer="1" --> <updateMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="1034" containerType="RSSL_DT_FIELD _LIST" flags="0x80 (RSSL_UPMF_DO_NOT_CONFLATE)" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" dataSize="38"> <dataBody> <fieldList flags="0x8 (RSSL_FLF_HAS_STANDARD_DATA)"> <fieldEntry fieldId="6" data="1719"/> <fieldEntry fieldId="22" data="0C6B"/> <fieldEntry fieldId="25" data="0C6F"/> <fieldEntry fieldId="32" data="0C00 9896 80"/> <fieldEntry fieldId="11" data="0C00 D7"/> <fieldEntry fieldId="267" data="100B 0D"/> </fieldList> </dataBody> </updateMsg>
The consumer application got this update from ADS.
<!-- Incoming Message (Channel IPC descriptor = 184) --> <!-- Time: 16:11:13:946 --> <!-- rwfMajorVer="14" rwfMinorVer="1" --> <updateMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="6" containerType="RSSL_DT_FIELD_LIST" flags="0x90 (RSSL_UPMF_HAS_SEQ_NUM|RSSL_UPMF_DO_NOT_CONFLATE)" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" seqNum="0" dataSize="38"> <dataBody> <fieldList flags="0x8 (RSSL_FLF_HAS_STANDARD_DATA)"> <fieldEntry fieldId="6" data="1719"/> <fieldEntry fieldId="22" data="0C6B"/> <fieldEntry fieldId="25" data="0C6F"/> <fieldEntry fieldId="32" data="0C00 9896 80"/> <fieldEntry fieldId="11" data="0C00 D7"/> <fieldEntry fieldId="267" data="100B 0D"/> </fieldList> </dataBody> </updateMsg>The update message's flag is 0x90 (RSSL_UPMF_HAS_SEQ_NUM|RSSL_UPMF_DO_NOT_CONFLATE). Please verify the version of ADH and ADS.
The version of the ADH and the ADS is 2.6.11 load L1
Thanks. The respnse you posted is what I had hoped to receive. My thinking is that there is some internal flag that needs to be set that I am failing to do. I also have an RFA C++ version of the code that sets the RSSL_UPMF_DO_NOT_CONFLATE flag using this same ADH and ADS, but it does so by using the RFA API's rfa::message::RespMsg::DoNotFilterFlag. Is this the equivalent of what I am doing in setting the updateMsg flag value to RSSL_UPMF_DO_NOT_CONFLATE or do I need to set some other flag in order to view the results correctly in the rmdstestclient?