question

Upvotes
Accepted
1 0 1 4

flag RSSL_UPMF_DO_NOT_CONFLATE ignored by ADH?

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.

elektronelektron-sdkrrteta-apielektron-transport-apirssl
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.

Upvote
Accepted
56.3k 145 45 65

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]
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.

Upvote
56.3k 145 45 65

@billpinsky

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.
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
1 0 1 4

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?

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.