“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;
- 2023-06-23T11:02:41.165709-0400
- Refresh w/ Group-Id 9 // GOOD GROUP
- 2023-06-23T11:02:41.165709-0400
- adsmon bring Server down
- Source Update Group-Id 2 w/ Status Suspect // BAD GROUP
- 2023-06-23T11:02:41.166545-0400
- Merge Group-Id 2 to Group-Id 0 // BAD GROUP
- 2023-06-23T11:02:41.167225-0400
- Source Update Group-Id 3 w/ Status Suspect
- 2023-06-23T11:02:41.167860-0400
- Merge Group-Id 3 -> Group-Id 0
- 2023-06-23T11:02:41.168479-0400
- Text -> F9: Server has gone down.
- 2023-06-23T11:02:41.169131-0400
- 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
- Merge Group-Id 9 -> Group-Id 0 // GOOD GROUP MERGE
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)
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
Best Answer
-
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
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).
0
Categories
- All Categories
- 6 AHS
- 37 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛