System procedures hold table lock

System procedures cannot acquire explicit table locks on system tables. However, in a system using Sybase Failover, system procedures on both companions may attempt to modify the system tables at the same time.

If you issue a system procedure to modify a system table, the system procedure acquires a table lock on the proxy table of the system table it is modifying. That is, if you issue a system procedure to alter the syslogins system table on primary companion MONEY1, the system procedure acquires a table lock on the syslogins proxy table on the secondary companion, PERSONNEL1.

The system procedure then modifies the syslogins proxy table on PERSONNEL1, and the syslogins proxy table updates the syslogins system table on MONEY1. After the changes are committed, the table locks on syslogins are released.

Any other system procedures that must make changes to the same system table are in a queue for that table. After the lock is released, they acquire the table lock.

You can use the sp_configure “dtm lock timeout period” command to set the amount of time system procedures wait in the queue for the locked proxy system table. See Chapter 5, “Setting Configuration Parameters,” in the System Administration Guide: Volume 1.