After a couple of hours connected with an ADS and receiving RIC prices properly, I'm getting next disconnection error:
[Thu Jul 11 16:08:50 2019]: (ComponentName) Static: (Severity) Error: RSSL Channel attempt to get rssl buffer failed on connection "Default::Connection_RSSL 22.214.171.124:14002" (Internal debug info "<..\..\..\Ripc\Impl\ripcsrvr.c:7519> Error: 1009 ripcIntWrtHeader() failed, out of output buffers. The output buffer may need to be flushed.
"). Disconnecting. Channel could have previously disconnected or number of output buffers is too small.
Is this an application or a connection error? How can I solve it?
Thank you in advance.
The error indicates that the reserved buffers for the channel were depleted
Typically, there are a couple of reasons for this.
1. The application may be a slow consumer which is unable to handle the high update rate sent by ADS - particularly during peak activity periods. You need to make sure you minimise any activity which is done during the callback events - as there are called on the API thread. If you are doing considerable processing, then you could farm that off to additional worker threads. Alternatively, you could ask your Market Data team if they can setup a Trade safe conflated service if you don't need to receive every single Quote update and thereby reducing the number of updates your application needs to process.
2. Or there could be congestion on your network.
You could also try and increase the guaranteedOutputBuffers value (default is 400) in your config - which may allow you to ride out any short periods of high activity.
If an RFA application cannot keep up with the high updates sent from ADS, ADS cuts the connection of the slow consumer application. Basically, ADS would log the disconnection "User ... has been disconnected due to an overflow condition". For example:
User s1_1200ups at position 10.42.63.67 on host U8007607-TPL-A using application on channel 258 has been disconnected due to an overflow condition.
Hence, you can check from ADS log file if the application is disconnected due to slow consumer or not.