Replication Server starts DSI threads to submit transactions to a replicate database to which it maintains a connection.
Each DSI thread is composed of a scheduler thread (DSI-S) and one or more executor threads (DSI-E). Each DSI executor thread opens an Open Client connection to a database.
To improve performance in sending transactions from a Replication Server to a replicate database it manages, you can configure a database connection so that transactions are applied using more than one DSI executor thread. See “Using parallel DSI threads” for a description of this feature.
The DSI scheduler thread calls the SQT interface to:
Collect small transactions into groups by commit order
Dispatch transaction groups to the next available DSI executor thread
The DSI executor threads:
Map functions using the function strings defined for the functions, according to the function-string class assigned to the database connection
Execute the transactions in the replicate database
Take action on any errors returned by the data server; depending on the assigned error actions, also record any failed transactions in the exceptions log
The DSI thread may apply a mixture of transactions from all primary databases supported by the Replication Server. The transactions are read from a single outbound stable queue for the replicate data server.