CanLockBMOD: Boolean;
CanLockBMOD: Boolean;
Свойство CanLockBMOD определяет режим блокировки системной таблицы во время загрузки показателей в базу данных временных рядов.
По умолчанию свойству установлено значение True, при этом во время загрузки осуществляется блокировка системной таблицы. Данная блокировка позволяет избежать параллельной записи в базу данных временных рядов, в которую производится загрузка. Если при этом параллельно будет запущено какое-либо копирование, то оно будет установлено в очередь.
При установке свойству CanLockBMOD значения False во время загрузки показателей блокировка системной таблицы производиться не будет. Анализ запуска параллельных действий с базой данных временных рядов возлагается на прикладного разработчика.
Важно. Параллельный запуск нескольких загрузок при отключенной блокировке системной таблицы может привести к зависанию запущенных процессов.
Значение данного свойства не сохраняется, его изменение доступно только при работе с объектом загрузки из Fore.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «FC_FROM». В базе создан объект импорта с идентификатором «OBJ_IMPORT».
Sub UserProc;
Var
Mb: IMetabase;
RubrDescr: IMetabaseObjectDescriptor;
ImportRequest: IImportRequestDefinition;
MetaLoader: ICubeMetaLoader;
Begin
Mb := MetabaseClass.Active;
RubrDescr := Mb.ItemById("FC_AUTO");
ImportRequest := Mb.ItemByIdNamespace("OBJ_IMPORT", RubrDescr.Key).Edit As IImportRequestDefinition;
MetaLoader := ImportRequest.ProviderParams As ICubeMetaLoader;
//Снятие блокировки системной таблицы
MetaLoader.CanLockBMOD := False;
//...
//Настройка остальных параметров загрузки
//...
MetaLoader.LoadData;
End Sub UserProc;
При выполнении примера будет запущен процесс загрузки показателей в базу данных временных рядов. При этом будет отключена блокировка системной таблицы, которая позволяет на системном уровне отслеживать процессы работы с базой данных временных рядов. До завершения текущей загрузки процесс отслеживания запуска других работ с базой должен выполняться в прикладном коде.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «FC_FROM». В базе создан объект импорта с идентификатором «OBJ_IMPORT». Указанный пример является точкой входа для .NET-сборки.
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
RubrDescr: IMetabaseObjectDescriptor;
ImportRequest: IImportRequestDefinition;
MetaLoader: ICubeMetaLoader;
Begin
Mb := Params.Metabase;
RubrDescr := Mb.ItemById["FC_AUTO"];
ImportRequest := Mb.ItemByIdNamespace["OBJ_IMPORT", RubrDescr.Key].Edit() As IImportRequestDefinition;
MetaLoader := ImportRequest.ProviderParams As ICubeMetaLoader;
//Снятие блокировки системной таблицы
MetaLoader.CanLockBMOD := False;
//...
//Настройка остальных параметров загрузки
//...
MetaLoader.LoadData();
End Sub;
При выполнении примера будет запущен процесс загрузки показателей в базу данных временных рядов. При этом будет отключена блокировка системной таблицы, которая позволяет на системном уровне отслеживать процессы работы с базой данных временных рядов. До завершения текущей загрузки процесс отслеживания запуска других работ с базой должен выполняться в прикладном коде.
См. также: