Each queue is managed by a Stable Queue Manager (SQM) thread. Threads are subprocesses that manage specific tasks, such as receiving messages. Some queues also have an additional Stable Queue Transaction (SQT) thread. See for details on the SQM and SQT threads.
When transactions are ready to leave the stable queue, one of following threads submits the transactions in the queue:
Data Server Interface (DSI) thread – manages the connection with the data server.
Replication Server Interface (RSI) thread – manages the connection with the replicate Replication Server
The DSI thread translates the transaction modifications into RPCs or the language as specified by the function strings in the function-string class assigned to the destination database.
Replication Server starts DSI threads to submit transactions to a replicate database to which it has a connection.
The DSI thread performs the following tasks:
Collects small transactions into groups by commit order
Maps functions to function strings according to the function-string class assigned to the database connection
Executes the transactions in the replicate database
Takes action on any errors returned by the data server; depending on the assigned error actions, also records any failed transactions in the exceptions log
To improve performance in sending transactions from a Replication Server to a replicate database, you can configure a database connection so that transactions are applied using multiple DSI threads. See for a description of this feature.
The DSI thread may apply a mixture of transactions from all data sources supported by the Replication Server. The transactions are processed in the single outbound stable queue for the destination data server.
RSI threads send messages from one Replication Server to another. There is one RSI thread for each destination Replication Server.
The primary Replication Server processes transactions, causing those destined for other Replication Servers to be written to RSI outbound queues. An RSI thread logs in to each destination Replication Server and transfers messages from the stable queue to the destination Replication Server.
When a direct route is created from one Replication Server to another, an RSI thread in the source Replication Server logs in to the destination Replication Server. When an indirect route is created, Replication Server does not create a new stable queue and RSI thread. Messages for indirect routes are handled by the RSI thread for the direct route. For more information, see “Establishing Replication Server connections”.