Is unique StreamId required when consumer and provider want to communicate with each other with m...

...essage updates
I am using UPA libs for FeedSim. Facing issues while communicating RSSL_MC_UPDATE message to subscribed clients. I checked sample applications and started debugging rsslVAProvider and rsslWatchlistConsumer applications to understand messages/ communications sent to and fro e.g. RSSL_MC_UPDATE/ RSSL_MC_STATUS. I have observed that when rsslWatchlistConsumer creates the Stream Id and sends it to rsslVAProvder, rsslVAProvider receives that information through a call-back function. Then Stream Id is fetched from StreamInfo. However this StreamId is greater than 1 what rsslWatchlistConsumer has sent to server. e.g. if rsslWatchlistConsumer sends Stream Id as 5, in rsslVAProvider its being received as 6. Is this a standard or expected behaviour?
rsslVAProvider and rsslWatchlistConsumer are the standard applications I was refering from Examples.
I would also like to understand why this happens and will I be able to use custom feed application with rsslWatchlistConsumer.
Best Answer
-
Stream IDs are used to represent multiple data streams within a connection, and each ID must be unique to that stream. For example, if a consumer opens a login stream, a directory stream, a stream requesting item TRI.N, and a stream requesting item GOOG.O, each of those four streams must use a Stream ID different from the other three (the Login could use ID 1, Directory 2, TRI.N 3, and GOOG.O 4). The UPA Dev Guide has more information; see the "Stream Identification" section.
The rsslWatchlistConsumer leverages the Consumer Watchlist Value-Add component which provides message routing, fanout, and recovery features for the application. To do this it creates and manages its own streams, which aren’t necessarily 1-to-1 with application streams, which it why it remaps stream IDs it sends to the provider. If you connect unmodified rsslWatchlistConsumer and rsslVAProvider examples directly, you should see that the rsslWatchlistConsumer receives the requested content with the Stream ID it used even if the ID reported by rsslVAProvider is different. Examples that do not use the Watchlist component (e.g. rsslConsumer, rsslVAConsumer) write messages directly to the connection and so will not see their IDs modified.
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
- 685 Datastream
- 1.4K DSS
- 615 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
- 252 ETA
- 556 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
- 275 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
- 652 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
- 228 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 中文论坛