CanLockBMOD: Boolean;
Свойство CanLockBMOD определяет режим блокировки системной таблицы во время копирования.
По умолчанию свойству установлено значение True, при этом во время копирования осуществляется блокировка системной таблицы. Это позволяет избежать параллельной записи в базу данных временных рядов, в которую производится копирование. Если при этом параллельно запускаются какие-либо процессы копирования баз данных временных рядов, то они устанавливаются в очередь.
При установке свойству CanLockBMOD значения False во время копирования блокировка системной таблицы производиться не будет. Анализ запуска параллельных процессов копирования возлагается на прикладного разработчика.
Важно. Параллельный запуск нескольких процессов копирования при отключенной блокировке системной таблицы может привести к зависанию процессов.
Значение данного свойства не сохраняется с объектом копирования, его изменение доступно только при работе с объектом копирования из Fore.
Для выполнения примера предполагается наличие в репозитории двух баз данных временных рядов: «FC_FROM» и «FC_FROM_COPY».
Sub UserProc;
Var
Mb: IMetabase;
Update: ICubeMetaUpdateEx;
Begin
Mb := MetabaseClass.Active;
Update := New CubeMetaUpdateClass.Create As ICubeMetaUpdateEx;
Update.Metabase := Mb;
Update.Rubricator := Mb.ItemById("FC_FROM").Bind As IRubricator;
Update.TargetRubricator := Mb.ItemById("FC_FROM_COPY").Bind As IRubricator;
//...
//Настройка объекта копирования
//...
//Снятие блокировки системной таблицы
Update.CanLockBMOD := False;
//Запуск копирования
Update.Apply(Null);
End Sub UserProc;
При выполнении примера будет запущен процесс копирования в существующую базу данных временных рядов. При этом будет отключена блокировка системной таблицы, которая позволяет на системном уровне отслеживать процессы запуска копирования. До завершения процесса копирования отслеживание других запусков копирования должно выполняться в прикладном коде.
См. также: