External and Internal Commit Control

Replication Server can create rs_threads with row-level lock when the replicate database is Microsoft SQL Server.

By default, the row-level lock is “on” and page level lock is “on”. For external commit control method, we need to have only row-level locking. When you apply a row-level lock to a table, you must grant unique index or primary key to that table. For example:

create table rs_threads
(id int,seq int CONSTRAINT PK_rs_threads PRIMARY KEY CLUSTERED(id ASC)
WITH (ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = OFF)) 

When the isolation level is 3, use:

Select seq from rs_threads with(nolock) where id =? 

For more information on selecting isolation levels for your transactions, see Replication Server Administration Guide Volume 2 > Performance Tuning.

Replication Server uses the rs_dsi_check_thread_lock function to check whether the current DSI executor thread is blocking another replicate database process. For example:
select count(*) 'seq' from master..sysprocesses where blocked = @@spid