ICubeMetaLoader.CanLockBMOD

Синтаксис Fore

CanLockBMOD: Boolean;

Синтаксис Fore.NET

CanLockBMOD: Boolean;

Описание

Свойство CanLockBMOD определяет режим блокировки системной таблицы во время загрузки показателей в базу данных временных рядов.

Комментарии

По умолчанию свойству установлено значение True, при этом во время загрузки осуществляется блокировка системной таблицы. Данная блокировка позволяет избежать параллельной записи в базу данных временных рядов, в которую производится загрузка. Если при этом параллельно будет запущено какое-либо копирование, то оно будет установлено в очередь.

При установке свойству CanLockBMOD значения False во время загрузки показателей блокировка системной таблицы производиться не будет. Анализ запуска параллельных действий с базой данных временных рядов возлагается на прикладного разработчика.

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

Значение данного свойства не сохраняется, его изменение доступно только при работе с объектом загрузки из Fore.

Пример 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;

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

Пример Fore.NET

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «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;

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

См. также:

ICubeMetaLoader