question

Upvote
Accepted
417 5 8 12

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

eta-apic++
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.

1 Answer

Upvotes
Accepted
52.9k 136 44 63

@Bhimrao.Ghule

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.

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.

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.

@Bhimrao.Ghule

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.

Thank You @Jirapongse . This was really helpful. I will handle those event and check if watchlist is enabled or not.


Thanks

Bhimrao

Show more comments