I use RFA OMMConsumer.RegisterClient and sends a unique closure on every request.
Usually, it works perfectly. However, when a large number of request are sent at the same time, then several of the responses contains null instead of the sent closure (though the Event containing the closure is not null).
In the Request Throttling section of the documentation, it says that it might be related to thrashing. I guess there is a connection between the null closure issue and the large amount of requests accumulated in the queue.
I need that closure data to process the request, thus it fails the entire request.
can you please assist?
Thanks in advance
11.11 OMM Consumer Request ThrottlingIf an OMM client application requests a large number of items at the same time, requests could overflow the outgoing
channel. This could cause the channel to disconnect. At the same time, the requested item images could begin to arrive. If
the consuming application cannot process the images fast enough, the network channel will overflow, causing the channel
to be disconnected. When the consumer tries to recover, it will again request all of the items, thereby repeating the
problem. This situation is often called thrashing. RFA uses request throttling to avoid thrashing and to ensure that the
consuming application behaves in a reasonable manner.
RFA has two request throttle queue implementations. The first, a timer throttle, sends requests to the infrastructure at a
fixed rate. The second, a count throttle, limits the maximum number of pending requests that have not yet received an
The throttle queues for RFA are configurable on a per connection basis. Most consuming applications can use the default
values. However, depending on factors such as client machine speed, network bandwidth, and whether the distribution
network is point-to-point or multicast, some applications may see better behavior by tuning the configuration.
By default, the RSSL connection uses a maximum pending count-based queue. The throttle queue implementation can be
changed, configured, or even disabled. For more details about these configuration parameters—throttleEnable,throttleTimerInterval, throttleRequestPerInterval, throttleMaxCount, and throttleBatchCount—refer to the RFA 7.0
Configuration Guide .NET Edition
Closure is the object that we keep inside RFA and it does not send through the network.
What version of RFA.NET are you using? If you still use RFA.NET 7.x, it now ends of support and there are many cases fixed in the new version of RFA .NET 8.1.x. Also, the development team has changed the way RFA.NET manage the internal object.
If you still use the old version, can you please upgrade to RFA.NET 8.1? If the problem persists, please open a new support ticket to investigate the issue further.