question

Upvotes
Accepted
1 2 1 3

“Source Directory” messages specifically with the “Group Filter Entry”.

Client reached out with the following on how they should handle the following behavior:

Having an issue with “Source Directory” messages specifically with the “Group Filter Entry”. My observation is that when a TREP server goes down (F9: Server has gone down) I’m receiving Group-Id’s with Status (non-merge) that are not in my UPA Connection.

I can replicate the problem by subscribing to one instrument. When I receive the Refresh message the Group-Id is logged. I also log all entry points in UPA, namely Refresh (Solicted/UnSolicted), Source Directory and Status messages. I then use adsmon “Source Routes and Application Program” to bring down Server.

As an actual example using my attached logs;

  1. 2023-06-23T11:02:41.165709-0400
    1. Refresh w/ Group-Id 9 // GOOD GROUP
  2. 2023-06-23T11:02:41.165709-0400
    1. adsmon bring Server down
    2. Source Update Group-Id 2 w/ Status Suspect // BAD GROUP
  3. 2023-06-23T11:02:41.166545-0400
    1. Merge Group-Id 2 to Group-Id 0 // BAD GROUP
  4. 2023-06-23T11:02:41.167225-0400
    1. Source Update Group-Id 3 w/ Status Suspect
  5. 2023-06-23T11:02:41.167860-0400
    1. Merge Group-Id 3 -> Group-Id 0
  6. 2023-06-23T11:02:41.168479-0400
    1. Text -> F9: Server has gone down.
  7. 2023-06-23T11:02:41.169131-0400
    1. Merge Group-Id 9 -> Group-Id 0 // GOOD GROUP MERGE
      All logs are attached to email. Can you please advise on the solution to this issue

You can use FeedDataServer.sort.txt (time sorted) to view Refresh and Source Update messages and sources.UPA_OPT_A-ZZZZZ.*.txt files for individual Source messages (Releated to

FeedDataServer.sort.txt)

FeedDataServer.txt

sources.UPA_OPT_A-ZZZZZ.refresh.000000-105410.647166.txt

sources.UPA_OPT_A-ZZZZZ.update.000001-110241.165953.txt

sources.UPA_OPT_A-ZZZZZ.update.000002-110241.166642.txt


#technology#productupaupa-api
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.

Hello @Anup.Patel

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?


If so please can you click the 'Accept' text next to the appropriate reply? This will guide all community members who have a similar question.

Thanks,


AHS


Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,
AHS

1 Answer

· Write an Answer
Upvotes
Accepted
78.6k 248 52 74

@Anup.Patel

Thank you for reaching out to us.

If the messages are sent from the Datafeed, you need to contact the Datafeed support team directly to verify the purpose of those messages.

I tested it with an ADS POP in my environment, as shown below.

1. An item is in group 1

1687751347871.png

2. When the service was down, I got the following messages.

..

//Group 1 Data Suspect
<updateMsg domainType="RSSL_DMT_SOURCE" streamId="2" containerType="RSSL_DT_MAP" flags="0xC0 (RSSL_UPMF_DO_NOT_CACHE|RSSL_UPMF_DO_NOT_CONFLATE)" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" dataSize="115">
    <dataBody>
        <map flags="0x0" countHint="0" keyPrimitiveType="RSSL_DT_UINT" containerType="RSSL_DT_FILTER_LIST" >
            <mapEntry flags="0x0" action="RSSL_MPEA_UPDATE_ENTRY" key="5001" >
                <filterList containerType="RSSL_DT_ELEMENT_LIST" countHint="0" flags="0x0">
                    <filterEntry id="3" action="RSSL_FTEA_SET_ENTRY" flags="0x0" containerType="RSSL_DT_ELEMENT_LIST">
                        <elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">
                            <elementEntry name="Group" dataType="RSSL_DT_BUFFER" data="1"/>
                            <elementEntry name="Status" dataType="RSSL_DT_STATE" dataState="RSSL_DATA_SUSPECT" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="F9: Service has gone down. Will recall when service becomes available." />
                        </elementList>
                    </filterEntry>
                </filterList>
            </mapEntry>
        </map>
    </dataBody>
</updateMsg>


//Merge Group 1 to 0. Now the item is in Group 0.
<updateMsg domainType="RSSL_DMT_SOURCE" streamId="2" containerType="RSSL_DT_MAP" flags="0xC0 (RSSL_UPMF_DO_NOT_CACHE|RSSL_UPMF_DO_NOT_CONFLATE)" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" dataSize="51">
    <dataBody>
        <map flags="0x0" countHint="0" keyPrimitiveType="RSSL_DT_UINT" containerType="RSSL_DT_FILTER_LIST" >
            <mapEntry flags="0x0" action="RSSL_MPEA_UPDATE_ENTRY" key="5001" >
                <filterList containerType="RSSL_DT_ELEMENT_LIST" countHint="0" flags="0x0">
                    <filterEntry id="3" action="RSSL_FTEA_SET_ENTRY" flags="0x0" containerType="RSSL_DT_ELEMENT_LIST">
                        <elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">
                            <elementEntry name="Group" dataType="RSSL_DT_BUFFER" data="1"/>
                            <elementEntry name="MergedToGroup" dataType="RSSL_DT_BUFFER" data="0"/>
                        </elementList>
                    </filterEntry>
                </filterList>
            </mapEntry>
        </map>
    </dataBody>
</updateMsg>

//ELEKTRON_DD (5001) Service Down
<updateMsg domainType="RSSL_DMT_SOURCE" streamId="2" containerType="RSSL_DT_MAP" flags="0x80 (RSSL_UPMF_DO_NOT_CONFLATE)" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" dataSize="72">
    <dataBody>
        <map flags="0x0" countHint="0" keyPrimitiveType="RSSL_DT_UINT" containerType="RSSL_DT_FILTER_LIST" >
            <mapEntry flags="0x0" action="RSSL_MPEA_UPDATE_ENTRY" key="5001" >
                <filterList containerType="RSSL_DT_ELEMENT_LIST" countHint="0" flags="0x0">
                    <filterEntry id="2" action="RSSL_FTEA_SET_ENTRY" flags="0x0" containerType="RSSL_DT_ELEMENT_LIST">
                        <elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">
                            <elementEntry name="ServiceState" dataType="RSSL_DT_UINT" data="0"/>
                            <elementEntry name="AcceptingRequests" dataType="RSSL_DT_UINT" data="1"/>
                            <elementEntry name="Status" dataType="RSSL_DT_STATE" dataState="RSSL_DATA_SUSPECT" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="" />
                        </elementList>
                    </filterEntry>
                </filterList>
            </mapEntry>
        </map>
    </dataBody>
</updateMsg>

3. When the service was up, I got the following messages.

//ELEKTRON_DD is Up
<updateMsg domainType="RSSL_DMT_SOURCE" streamId="2" containerType="RSSL_DT_MAP" flags="0x80 (RSSL_UPMF_DO_NOT_CONFLATE)" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" dataSize="309">
    <dataBody>
        <map flags="0x0" countHint="0" keyPrimitiveType="RSSL_DT_UINT" containerType="RSSL_DT_FILTER_LIST" >
            <mapEntry flags="0x0" action="RSSL_MPEA_UPDATE_ENTRY" key="5001" >
                <filterList containerType="RSSL_DT_ELEMENT_LIST" countHint="0" flags="0x0">
                    <filterEntry id="1" action="RSSL_FTEA_SET_ENTRY" flags="0x0" containerType="RSSL_DT_ELEMENT_LIST">
                        <elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">
                            <elementEntry name="Name" dataType="RSSL_DT_ASCII_STRING" data="ELEKTRON_DD"/>
...
                        </elementList>
                    </filterEntry>
                    <filterEntry id="2" action="RSSL_FTEA_SET_ENTRY" flags="0x0" containerType="RSSL_DT_ELEMENT_LIST">
                        <elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">
                            <elementEntry name="ServiceState" dataType="RSSL_DT_UINT" data="1"/>
                            <elementEntry name="AcceptingRequests" dataType="RSSL_DT_UINT" data="1"/>
                        </elementList>
                    </filterEntry>
...
            </mapEntry>
        </map>
    </dataBody>
</updateMsg>
...
//Get the refresh message of a subscribed item with Group 1.
<refreshMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="4" containerType="RSSL_DT_FIELD_LIST" flags="0x1DA (RSSL_RFMF_HAS_PERM_DATA|RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_HAS_SEQ_NUM|RSSL_RFMF_REFRESH_COMPLETE|RSSL_RFMF_HAS_QOS|RSSL_RFMF_CLEAR_CACHE)" groupId="1" seqNum="21408" permData="0301 0162 C0" qosDynamic="0" qosRate="2" qosTimeliness="1" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text=""  dataSize="1642">
    <key  flags="0x7 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME|RSSL_MKF_HAS_NAME_TYPE)"  serviceId="5001" name="IBM.N" nameType="1"/>
    <dataBody>
        <fieldList flags="0x9 (RSSL_FLF_HAS_FIELD_LIST_INFO|RSSL_FLF_HAS_STANDARD_DATA)" fieldListNum="79" dictionaryId="1">
            <fieldEntry fieldId="1" data="3E"/>
            <fieldEntry fieldId="2" data="40"/>

The client may need to enable tracing in the API to verify the retrieved message. Please refer to the ETA C Developer Guide in Section 10.17 XML Tracin regarding how to enable tracing in the API.

UPA has been rebranded to ETA (Enterprise Transport API).



1687751347871.png (32.7 KiB)
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.

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.