question

Upvotes
Accepted
20 4 2 8

RFA EventQueue bottleneck

I am using the below codes for event dispatch, where EVENT_TIMEOUT_PERIOD = 0

I found that only 350-400 events can be dispatched every second, is there any configuration I can set to increase the throttle rate?
(if there are messages in the queue, 350-400 events will be dispatched every second,
if there is no message in the queue, it will loop about 100000 times every second)

void dispatchEvent()
{
long dispatchReturn = simpleConsumer.getEventQueue()->dispatch(EVENT_TIMEOUT_PERIOD);
}

I tried to apply the following configuration but it doesnt work

\Connections\Connection_RSSL\watchListTableSize = 100001 \Connections\Connection_RSSL\guaranteedOutputBuffers = 1000
\Connections\Connection_RSSL\numInputBuffers = 1000
\Connections\Connection_RSSL\throttleEnabled = true
\Connections\Connection_RSSL\throttleType = "count"
\Connections\Connection_RSSL\throttleBatchCount = 500
\Connections\Connection_RSSL\throttleMaxCount = 1000

\Sessions\Session1\connectionList = "Connection_RSSL"
\Sessions\Session1\threadModel = "Dual"

treprfarfa-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

· Write an Answer
Upvotes
Accepted
4.4k 10 6 9

When you call dispatch() and there is an event available, RFA will invokes the client callback method. The client callback method executes in the same thread that call dispatch().

It is your callback method that slow down your dispatch rate.

This usually means you put a process heavy code or blocking code in the client callback.

There is no configuration that would help. You have to avoid blocking code yourself.

You can decode the message in the client callback but once you got the data you want you should pass it to another thread that will do the blocking code and let the dispatching thread dispatch next event.


dispatch.png (31.4 KiB)
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.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.