Для реализации системы захватов используются специальные файлы замков. Для каждой совместно используемой таблицы создается общий файл замков, содержащий битовую строку. Каждый бит этой строки соответствует записи таблицы. Номер бита равен номеру записи. Файл замка удлиняется по мере увеличения числа записей в таблице. Захваченные записи метятся в этом файле установленными битами. Для того, чтобы отличить «свои» захваты от прочих, для каждого пользователя таблицы, работающего с замками, создается еще один файл замка – локальный замок. Структура этого файла полностью совпадает с файлом общего замка.
Если для какой-либо записи имеются установленные биты как в общем замке, так и в локальном замке пользователя, это означает, что запись – «своя», и с ней можно свободно работать. Если бит установлен только в общем замке, значит запись захвачена кем-то другим и недоступна.
Для обслуживания замков предлагается следующий набор функций: захватить таблицу, захватить запись, заданную номером, захватить группу записей, найти группу записей по некоторому условию и захватить их (операция атомарна), захватить запись и считать ее актуальное состояние (операция атомарна), освободить таблицу, освободить захваченную запись, освободить группу записей.
Захват таблицы возможен, если в ней нет записей, захваченных другими пользователями. Аналогичным образом, захват группы записей возможен, если все записи группы свободны. При этом захват с удаленных пользователем записей снимается автоматически.