question

Upvotes
Accepted
34 6 11 15

How to set groupId correctly in TREP FH

I am trying to add groupId to the refreshMsg and statusMsg in TREP FH using the following:


RsslBuffer group = RSSL_INIT_BUFFER;

group = {2, (char*)"2"};


refreshMsg.groupId = {2, (char*)"2"};

statusMsg.groupId = {2, (char*)"2"};


I see difference in testclient groupId in refreshMsg and statusMsg. Below is the data. Shouldn't they be the same? Also I enabled XML trace and the XML output is there.



XML:

<refreshMsg domainType="RSSL_DMT_MARKET_BY_ORDER" streamId="602577620" containerType="RSSL_DT_MAP" flags="0x11AA (RSSL_RFMF_HAS_PERM_DATA|RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_HAS_QOS|RSSL_RFMF_CLEAR_CACHE|RSSL_RFMF_HAS_PART_NUM)" groupId="0" partNum="0" permData="0300 0033 0C" qosDynamic="0"



TESTCLIENT:

<refreshMsg domainType="RSSL_DMT_MARKET_BY_ORDER" streamId="5" containerType="RSSL_DT_MAP" flags="0x10AA (RSSL_RFMF_HAS_PERM_DATA|RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_HAS_QOS|RSSL_RFMF_HAS_PART_NUM)" groupId="8" partNum="1" permData="0301 2A33 0C" qosDynamic="0" qosRate="1" qosTimeliness="1" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="" dataSize="64513">





statusMsg.groupId = {2, (char*)"2"};

XML:

<statusMsg domainType="RSSL_DMT_MARKET_BY_ORDER" streamId="602577620" containerType="RSSL_DT_NO_DATA" flags="0x30 (RSSL_STMF_HAS_GROUP_ID|RSSL_STMF_HAS_STATE)" groupId="12800" dataState="RSSL_DATA_SUSPECT" streamState="RSSL_STREAM_CLOSED_RECOVER"


TESTCLIENT:

<statusMsg domainType="RSSL_DMT_MARKET_BY_ORDER" streamId="5" containerType="RSSL_DT_NO_DATA" flags="0x38 (RSSL_STMF_HAS_MSG_KEY|RSSL_STMF_HAS_GROUP_ID|RSSL_STMF_HAS_STATE)" groupId="12" dataState="RSSL_DATA_SUSPECT" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE"



trep#technology#productupa
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
Accepted
77k 240 52 72

@vishal.anand

Thank you for reaching out to us.

The code should be like this:

    char groupId[] = { 0x00, 0x02};
    RsslBuffer group;
    group.length = 2;
    group.data = groupId;
    refreshMsg.groupId = group;

If a consumer connects to a provider directly, the consumer will get this.

<REFRESH domainType="MARKET_PRICE" streamId="3" containerType="FIELD_LIST" flags="0x1E8 (HAS_MSG_KEY|SOLICITED|REFRESH_COMPLETE|HAS_QOS|CLEAR_CACHE)" groupId="2" Qos: Realtime/TickByTick/Static - timeInfo: 0 - rateInfo: 0 State: Open/Ok/None - text: "Item Refresh Completed" dataSize="54">
    <key flags="0x07 (HAS_SERVICE_ID|HAS_NAME|HAS_NAME_TYPE)" serviceId="1" name="IBM.N" nameType="1"/>

However, if a consumer gets the data from RTDS (TREP), RTDS may change the value of the groupId.

Please kindly contact the RTDS support team directly via MyRefinitiv to verify the behavior of RTDS regarding the groupId.


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
34 6 11 15


@Jirapongse
i did the following:

I still see via RTDS that the groupId is 22 for refresh Message and 23 in status message.

char groupId[] = { 0x00, 0x02};

RsslBuffer group;

group.length = 2;

group.data = groupId;

refreshMsg.groupId = group;

statusMsg.groupId = group;

<refreshMsg domainType="RSSL_DMT_MARKET_BY_ORDER" streamId="5" containerType="RSSL_DT_MAP" flags="0x11AA (RSSL_RFMF_HAS_PERM_DATA|RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_HAS_QOS|RSSL_RFMF_CLEAR_CACHE|RSSL_RFMF_HAS_PART_NUM)" groupId="22" partNum="0" permData="0301 2A33 0C" qosDynamic="0" qosRate="1" qosTimeliness="1" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="" dataSize="369">

<statusMsg domainType="RSSL_DMT_MARKET_BY_ORDER" streamId="5" containerType="RSSL_DT_NO_DATA" flags="0x38 (RSSL_STMF_HAS_MSG_KEY|RSSL_STMF_HAS_GROUP_ID|RSSL_STMF_HAS_STATE)" groupId="23" dataState="RSSL_DATA_SUSPECT" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="*Reset Received For Source "330", MARKET_LEVEL_RESET. Clear Orderbook" dataSize="0">

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
34 6 11 15

continuing @Jirapongse

query directly to provider


<refreshMsg domainType="RSSL_DMT_MARKET_BY_ORDER" streamId="5" containerType="RSSL_DT_MAP" flags="0x10A8 (RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_HAS_QOS|RSSL_RFMF_HAS_PART_NUM)" groupId="0" partNum="1" qosDynamic="0" qosRate="1" qosTimeliness="1" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="" dataSize="64442">



<statusMsg domainType="RSSL_DMT_MARKET_BY_ORDER" streamId="5" containerType="RSSL_DT_NO_DATA" flags="0x30 (RSSL_STMF_HAS_GROUP_ID|RSSL_STMF_HAS_STATE)" groupId="2" dataState="RSSL_DATA_SUSPECT" streamState="RSSL_STREAM_CLOSED_RECOVER" code="RSSL_SC_NONE" text="Reset Received For Source "330", MARKET_LEVEL_RESET. Clear Orderbook" dataSize="0">



Why am I getting different groupId for refresh and status message even though I am using the same groupId?

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
34 6 11 15

@Jirapongse any thoughts?

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.

@vishal.anand

Could you please modify the Provider example in the ETA package to replicate this issue?

Then, please share the code.

What version of the ETA API are you using?

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.