Service ID not updated in RFA

During our infra restart, we regulaly have a trouble with a provider service ID:
- When the provider started, it sent the directory with the service ID 1. The RFA log was:
<refreshMsg domainType="RSSL_DMT_SOURCE" streamId="2" containerType="RSSL_DT_MAP" flags="0x168 (RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_REFRESH_COMPLETE|RSSL_RFMF_CLEAR_CACHE)" groupId="" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="Directory" dataSize="268">
<key flags="0x8 (RSSL_MKF_HAS_FILTER)" filter="255"/>
<dataBody>
<map flags="0x8 (RSSL_MPF_HAS_TOTAL_COUNT_HINT)" countHint="0" keyPrimitiveType="RSSL_DT_UINT" containerType="RSSL_DT_FILTER_LIST" >
<mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="1" >
<filterList containerType="RSSL_DT_ELEMENT_LIST" countHint="0" flags="0x2 (RSSL_FTF_HAS_TOTAL_COUNT_HINT)">
<!-- ... -->
</filterList>
</mapEntry>
</map>
</dataBody>
</refreshMsg>
with:
<mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="1" >
- After an infra restart, the provider sent again the directory and RFA updated the service ID from 1 to 0. The RFA log was:
<refreshMsg domainType="RSSL_DMT_SOURCE" streamId="2" containerType="RSSL_DT_MAP" flags="0x168 (RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_REFRESH_COMPLETE|RSSL_RFMF_CLEAR_CACHE)" groupId="" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="Directory" dataSize="268">
<key flags="0x8 (RSSL_MKF_HAS_FILTER)" filter="255"/>
<dataBody>
<map flags="0x8 (RSSL_MPF_HAS_TOTAL_COUNT_HINT)" countHint="0" keyPrimitiveType="RSSL_DT_UINT" containerType="RSSL_DT_FILTER_LIST" >
<mapEntry flags="0x0" action="RSSL_MPEA_UPDATE_ENTRY" key="0" >
<filterList containerType="RSSL_DT_ELEMENT_LIST" countHint="0" flags="0x2 (RSSL_FTF_HAS_TOTAL_COUNT_HINT)">
<!-- ... -->
</filterList>
</mapEntry>
</map>
</dataBody>
</refreshMsg>
with:
<mapEntry flags="0x0" action="RSSL_MPEA_UPDATE_ENTRY" key="0" >
The issue is that RFA didn't properly updated its map entry internally. The infra used the new service ID 0 (instead of 1) and RFA didn't understand the service 0 because it was still using the service 1. When a consumer tried to connect to the provider with the new service ID, we have a warning message like this:
[WARN ] From component 'Static' with log id '7019': [Sat Aug 04 18:15:48 2018]: (ComponentName) Static: (Severity) Warning: RSSL_Prov_Connection "Connection_SSLEDMP_RMDS" - Client Session Handle 498569344 - Request message received but service name could not be found for given source ID. It is possible that the source directory has not yet been submitted. Ignoring request.
In the provider the request message didn't contain any service name:
reqMsg.getAttribInfo().getServiceName().c_str() is empty.
Do you know why the service ID is not properly updated within RFA ?
Do we need to implement something in the implementation for telling RFA that the service ID needs to be updated ?
Answers
-
Are you using RFA C++ 8.1.0.L1?
I did a quick test using Provider_Interactive example from RFA C++ 8.1.0.L1 package with ADH in my lab. I have reconfigured the ADH to connecting to the Provider example and wait until it gets data and then kill the ADH process and restart it again but still unable to replicate the error message.
I have reviewed the RSSL tracing log from my test and found that the Provider publishes directory refresh with the same key value which is 1 like below sample.
<refreshMsg domainType="RSSL_DMT_SOURCE" streamId="2" containerType="RSSL_DT_MAP" flags="0x168
(RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_REFRESH_COMPLETE|RSSL_RFMF_CLEAR_CACHE)" groupId="" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="RequestCompleted" dataSize="412">
<key flags="0x8 (RSSL_MKF_HAS_FILTER)" filter="255"/>
<dataBody>
<map flags="0x8
(RSSL_MPF_HAS_TOTAL_COUNT_HINT)" countHint="0" keyPrimitiveType="RSSL_DT_UINT" containerType="RSSL_DT_FILTER_LIST" >
<mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="1" >
<filterList containerType="RSSL_DT_ELEMENT_LIST" countHint="0" flags="0x2 (RSSL_FTF_HAS_TOTAL_COUNT_HINT)">
…
</filterList>
</mapEntry>
</map>
</dataBody>
</refreshMsg>- Are you using the same implementation with our Provider_Interactive example?
- Is this possible to run the test with Provider_Interactive in your lab?
If you can replicate the issue with our example, can you please open a new support case and provide full RSSL tracing log along with RFA.log and please also provide steps to replicate the issue so that we can investigate the issue further.
But if you are unable to replicate the issue when using our example, you may need to compare your implementation with our Provider example.0 -
Yes I'm using RFA C++ 8.1.0.L1.
OK I will try to replicate with the sample, I'll give you a feedback.
Thanks for your reply.
Regards.
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 688 Datastream
- 1.4K DSS
- 620 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 254 ETA
- 557 WebSocket API
- 38 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 276 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 663 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 193 TREP Infrastructure
- 229 TRKD
- 917 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛