8. Using Advanced Features : Strategies for Avoiding Deadlock : Maxlocks Values
 
Share this page                  
Maxlocks Values
For user updates to the shadow, archive, and input queue tables, the value of maxlocks (in the SET LOCKMODE statement) is taken from the value inherited from the system_maxlocks value or set with the SET LOCKMODE statement. For shadow and archive tables, this value cannot be overridden.
The input queue table is updated when any update to any base replicated table occurs. Therefore, it is important to avoid lock escalation on this table. For this table, the SET LOCKMODE statement works for maxlocks and lets you set the system_maxlocks for the input queue separately. If SET LOCKMODE is not used on the input queue, the maxlocks value is inherited from the initial user update.
For distribution threads (that cannot inherit user session attributes), the maxlocks value can be set using the following config parameter:
ii.nodename.dbms.server_name.rep_dt_maxlocks
This parameter must be set to an integer value indicating the maximum number of locks taken before escalation. The distribution threads use this value of maxlocks for all table opens, but only if it exceeds 50. If this value is not set, the threads use the generic system maxlocks value as set in the config.dat parameter:
ii.nodename.dbms.server_name.system_maxlocks
This value is used only if it exceeds 100. If neither parameter is set, the default value is 100 locks.