Observed overflow in the RFA Query

Hi Refinitiv,
We are currently investigating a latency issue being observed by our mutual client north side of our feed handler application. As per our client's TREP Application Development, they observed overflow in the RFA Query, suggesting that we should increase the RFA thread or even segregate it into multiple TCP connections. Would you be able to help on the following queries:
1) Can you please confirm how to increase the RFA thread? Is it how we initialize the RFA API and Sessions?
2) Can we have multiple sessions in RFA config? Would you be able to confirm if adding a second Connection in the RFA.cfg will introduce 2 different TCP connections? For example: \Sessions\Session1\connectionList = "Connection_RSSL,Connection_RSSL_123" \Sessions\Session1\OMMPerfMode = "Latency"
\Connections\Connection_RSSL\connectionType = "RSSL"
\Connections\Connection_RSSL\rsslPort = "14002"
\Connections\Connection_RSSL\serverList = "192.168.220.39" \Connections\Connection_RSSL_123\connectionType = "RSSL" \Connections\Connection_RSSL_123\rsslPort = "14003"
\Connections\Connection_RSSL_123\serverList = "192.168.220.40"
RFA version - rfa8.1
Best Answer
-
I assume that currently, the application is running in this Single Threaded With an Event Queue model.
There are a total of two threads in this model. The main application thread that is started by the OS is used to send requests and to dispatch events in an event queue. The second thread is used by RFA for adapter and Session Layer processing.
The overflow happens when there are a lot of events in the event queue waiting to be dispatched.
You need to modify the application code to solve this issue. There are two solutions.
1. Multiple event queues
The above picture uses two event queues. Each event queue will be dispatched by its own application thread in order to distribute workload among event queues and increase the application’s performance.
2. Horizontal Scaling
You need to modify the code to acquire multiple sessions. Please refer to this thread for more information.
For more information, please refer to section 17.3 Threading Models in the RFA developers guide.
Next, please see the answers to your questions.
1) Can you please confirm how to increase the RFA thread? Is it how we initialize the RFA API and Sessions?
Each session will have one or two RFA threads depending on the threadModel configuration.
- If set to Single, RFA will optimize the threading model to minimize latency. For response messages, no queue is used by session and adapter; RSSL response messages go directly to clients or clients’ queue.
- If set to Dual, the adapter thread and associated queues will exist for maximizing the throughput of RFA.
However, this configuration can't solve the overflow issue.
You can also increase the number of RFA threads by using horizontal scaling.
2) Can we have multiple sessions in RFA config? Would you be able to confirm if adding a second Connection in the RFA.cfg will introduce 2 different TCP connections?
Yes, you can have multiple sessions configurations in RFA config but the application needs to use them by calling the Session::acquire method.
Yes, adding a second connection in the connectionList will create two TCP connections. However, the number of threads and event queues are still the same.
0
Categories
- All Categories
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 33 Data Model Discovery
- 682 Datastream
- 1.4K DSS
- 613 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 248 ETA
- 552 WebSocket API
- 37 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.8K Refinitiv Data Platform
- 622 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 26 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 191 TREP Infrastructure
- 228 TRKD
- 915 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 83 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛