4.7.4.1. Блокировка редактирования сущностей

Пессимистичная блокировка сущностей применяется, если велика вероятность одновременного редактирования одного и того же экземпляра, и стандартная оптимистичная блокировка, основанная на версионности сущностей, порождает слишком много коллизий.

Пессимистичная блокировка использует явное блокирование экземпляра сущности при открытии его в экране редактирования. В результате только один пользователь в некоторый момент времени может редактировать данный экземпляр сущности.

Режим пессимистичной блокировки может быть задан для любого класса сущности в процессе настройки или эксплуатации системы. Для этого достаточно выполнить следующие действия:

  • вставить в таблицу SYS_LOCK_CONFIG запись со следующими значениями полей:

    • ID - произвольный идентификатор типа UUID.

    • NAME - наименование блокируемого объекта. Для сущности это должно быть имя ее мета-класса.

    • TIMEOUT_SEC - таймаут истечения блокировки в секундах.

    Например:

    insert into sys_lock_config (id, create_ts, name, timeout_sec) values (newid(), current_timestamp, 'sales$Order', 300)
  • перезапустить сервер или выполнить метод reloadConfiguration() JMX-бина app-core.cuba:type=LockManager.