Was this helpful?
rep_xx_lockmode Parameter--Override Default Locking
The default locking characteristics for the shadow, archive, and input queue tables follow those of the original update. You can override this default for every table in every database for a specific DBMS Server or for all DBMS servers.
To override the default, add the following resources to the config.dat file in the II_CONFIG directory:
ii.nodename.dbms.server_name.rep_sa_lockmode
ii.nodename.dbms.server_name.rep_iq_lockmode
ii.nodename.dbms.server_name.rep_dq_lockmode
where:
nodename
Is the name of the node and server_name is the server name (use an asterisk [*] for all servers).
rep_sa_lockmode
Determines the lock level used for the Ingres Replicator shadow and archive tables when a user update is performed.
rep_iq_lockmode
Determines the lock level used for the input queue table when a user update is performed and when the distribution threads move records from the input queue.
rep_dq_lockmode
Determines the lock level used by the Ingres Replicator distribution threads when moving records from the input queue to the distribution queue.
Possible values for these parameters are:
ROW
Always use row locking.
PAGE
Always use page locking.
This is the default for the rep_dq_lockmode parameter.
TABLE
Always use table locking.
USER
Locking strategy is determined by the user update (not valid for rep_dq_lockmode).
This is the default for the rep_sa_lockmode and rep_iq_lockmode parameters if they are not set, which means that the locking strategy is taken from the user update.
All these locking strategies describe the initial lock level at the time the update is started. If the maxlocks value for any table is exceeded, the locking escalates in the normal manner to table locking. For more information, see Maxlocks Values. You can override the initial lock level used on the input queue table for a specified database session using set lockmode on dd_input_queue where level = level.
To summarize, the level set by SET LOCKMODE ON tablename statement overrides all other settings for that table. Otherwise, the level is determined by the config.dat parameters described above. If these parameters are not set, the level is determined by the level used when updating the base user table. Hence, the user is given the ability to determine the exact level used for each update to every table involved in replication.
Note:  The SET LOCKMODE statement does not affect the updates performed by the distribution threads because they are not performed in the context of a user.
Last modified date: 01/30/2023