Can RFA be started in a multi-threaded, multi-connection mode?

Hi team,

Just a quick check for the following questions. Thank you in advance.

Do you have advice about debugging, monitoring, and tuning RFA client applications? For example:
- Does RFA expose its total traffic numbers for tracking?
- Does RFA provide insight into its backlog to help us identify slow consumer problems?
- Can RFA be started in a multi-threaded, multi-connection mode?
- Do you have guidelines on the symbol universe size that can be efficiently processed from one thread?

Regards,

Ryan


Best Answer

  • Gurpreet
    Answer ✓

    Hello @ryan.roxas,

    RFA SDK manages the threads internally - and you can read about threading models in the RFA developer guide. Also, you can enable logging in the SDK to capture the raw OMM messages that are exchanged between the SDK and the infrastructure.

    Slow consumer happens when the event queue is not emptied fast enough. This is usually a result of application doing additional decoding and processing on the data in the event callback method. Once you speed up the event callback - the slow consumer issue will go away. You can also use the View feature in SDK or RTMDS to limit the amount of data that is sent to the application.

    The number of instruments processed in a single thread will depend on the instrument update rate and the type of machine and the network bandwidth, as well as the settings on the RTMDS.

Answers

  • @ryan.roxas

    According to the RFA developer guide, you can check the returned value of the dispatch method.

    The dispatch method returns number of events left in the queue (application developers should not rely on the exact value, as it is only an estimate) or -1 if the specified time passed and there were no events.

    You can also enable the enableOMMEventAge configuration in the connection.

    1723599871481.png