disconnected due to an overflow condition

Hi,
We are using ETA C++ library to connect and fetch data from TREP. sometimes, we saw an error message in TREP/ADS "disconnected due to an overflow condition" . And we observed that our connection is terminated by TREP and data Market data update has been stopped completely until restart of a component. Please help me to understand that, which event we will get from TREP server in case of such error. I believe that, we will get RsslReactorChannelEvent in callback, but not sure which eventType
Best Answer
-
Typically, the "disconnected due to an overflow condition" message indicates that the connected application is a slow consumer. The application is unable to handle the update traffic in a timely manner.
For example, if the application can handle only 100 update messages per second and the total update rate of all subscribed items is 1000 update messages per second, this indicates that the client is a slow consumer.
When the client is a slow consumer, ADS is unable to send messages to the TCP buffer so it puts messages into the internal output buffer. The messages in the internal output buffer will be sent to the TCP buffer when the TCP buffer is available.
If the internal output buffer is full, ADS will cut the connection and report this message ("disconnected due to an overflow condition").
The number of output buffers in ADS can be increased via the guaranteedOutputBuffers and maxOutputBuffers configurations.
*ads*"${port}"*guaranteedOutputBuffers : 200
#help
guaranteedOutputBuffers: { 1 - N buffers }
The number of output buffers guaranteed per channel.
The meaning of guaranteed is that the output buffers are pre-allocated
to the channel. (See also description of poolSize parameter).
Default Value: 200
#end
*ads*"${port}"*maxOutputBuffers : 400
#help
maxOutputBuffers: { 1 - N buffers }
The maximum number of output buffers to allocate per channel.
The (maxOuputBuffers - guaranteedOutputBuffers) defines the number of
buffers to be dynamically created to be requested as needed from the pool
per channel. Mounts will initially be allocated the guaranteedOutputBuffers
and can take more from the buffer pool as needed until they reach the maxOutputBuffers
limit.These configurations may reduce the number of disconnections due to an overflow condition. However, the better approach is modifying the application to run and process messages faster.
Moreover, in some scenarios, the problem could be from a network issue. You may need to contact the network team to check the network bandwidth.
0
Answers
-
Hi @Jirapongse ,
Thanks for the reply, We are working on our application to make it process data more faster, but we need a work around to keep our application running, whenever there is a disconnection because of this error.
I wanted to know, if client application receive any error/warning message from TREP/ADS in case of such an error, so that we can try to re-connect and re-subscribe to the tickers. I believe that, we should be receiving some warning in "channelEventCallback". Can you please help me with that ?
Thanks
Bhimrao.
0 -
I assume that you are using ETA Value-added Reactor.
Typically, ETA VA Reactor will recover the connection when ADS cuts the connection. The application will receive the RSSL_RC_CET_CHANNEL_DOWN_RECONNECTING and then RSSL_RC_CET_CHANNEL_UP events.
Then, the application can recover items when the service is up.
However, if you are using ETA VA Reactor with watchlist enabled, ETA VA Reactor will recover the connection and re-subscribe items on behalf of the application.
0 -
@Jirapongse . This was really helpful. I will handle those event and check if watchlist is enabled or not.Thank You
Thanks
Bhimrao
0 -
@Jirapongse Can you please give me some hints, how to enable watchlist in ETA ValueAdded reactor ?Hi0
-
You can enable a watchlist in the consumer role.
/* Setup consumer role for connection. */
rsslClearOMMConsumerRole(&consumerRole);
consumerRole.pLoginRequest = &loginRequest;
consumerRole.base.channelEventCallback = channelEventCallback;
consumerRole.base.defaultMsgCallback = msgCallback;
consumerRole.watchlistOptions.enableWatchlist = RSSL_TRUE;
consumerRole.watchlistOptions.channelOpenCallback = channelOpenCallback;Please refer to the Eta\Applications\Examples\WatchlistConsumer example for more information.
0 -
@Jirapongse Thank You
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
- 684 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
- 249 ETA
- 554 WebSocket API
- 37 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
- 643 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
- 26 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 192 TREP Infrastructure
- 228 TRKD
- 915 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 中文论坛