Difference between revisions of "GetServerLocksInformation"

From SunFlurry wiki
Jump to: navigation, search
m (1 revision imported)
m (1 revision imported)
 
(One intermediate revision by one other user not shown)
Line 32: Line 32:
 
</code>
 
</code>
 
==== Аргументы ====
 
==== Аргументы ====
* <code>''<Перекрестная проверка (INT)>''</code> - Флаг выполнения перекрестной проверки (проверки непротиворечивости информации по блокировке на сервере) -- это отладочная опция, создающая более высокую загрузку по выполнению запроса блокировок, чем обычно. Не рекомендовано использовать, кроме как для отладки системы.
+
* <code>''<Перекрестная проверка (INT)>''</code> - {{Optional}} Флаг выполнения перекрестной проверки (проверки непротиворечивости информации по блокировке на сервере) -- это отладочная опция, создающая более высокую загрузку по выполнению запроса блокировок, чем обычно. Не рекомендовано использовать, кроме как для отладки системы.
  
 
==== Возвращаемое значение ====
 
==== Возвращаемое значение ====

Latest revision as of 09:02, 28 June 2021

  GetServerLocksInformation (Информация по блокировкам)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Сервер
Исключения:Не администратор
Визуальность:Нет

Функция получает полный список блокированных в данный момент объектов на сервере (включая именованные семафоры). Функция доступна для выполнения только под учетными записями администраторов. В результате успешного выполнения функции, возвращается таблица, имеющая следующие столбцы:

  • LOCKID -- внутренний идентификатор блокировки на сервере
  • REFCOUNT -- внутренний счетчик обращений к блокировке на сервере
  • ELEMENT -- ссылка на блокируемый элемент или наименование серверного семафора
  • PATH -- путь базы данных элемента (тип и вид элемента) (к примеру, REF.Номенклатура)
  • LOCKTIME -- дата и время инициации блокировки
  • USERNAME -- имя пользователя, осуществившего блокировку
  • MACHINENAME -- имя компьютера, на котором была осуществлена блокировка
  • FLAGS -- особые флаги блокировки, битовая маска:
    • бит 0 -- постоянная блокировка (временные блокировки возникают, к примеру, при сохранении элементов, и длятся короткое время)
    • бит 1 -- внутренний флаг bLockedAllNeeded установлен (отладочная информация)
    • бит 2 -- пользователь, осуществивший блокировку соединен с сервером (после внезапного разъединения, сервер может ожидать восстановления связи от клиента в течение нескольких минут)
    • бит 3 -- перекрестная проверка пройдена успешно

Синтаксис

GetServerLocksInformation(<Перекрестная проверка (INT)>=0):<Таблица блокировок сервера (TAB)>

Аргументы

  • <Перекрестная проверка (INT)> - (необязательный аргумент) Флаг выполнения перекрестной проверки (проверки непротиворечивости информации по блокировке на сервере) -- это отладочная опция, создающая более высокую загрузку по выполнению запроса блокировок, чем обычно. Не рекомендовано использовать, кроме как для отладки системы.

Возвращаемое значение

Возвращается таблица со списком всех заблокированных объектов.


Примеры

//Фрагмент получает информацию по текущим блокировкам на сервере и копирует ее в визуальную таблицу
MainTab:=Form.MainTab.Value;
aTab:=GetServerLocksInformation(Form.оПерекрестная.Value);
If Form.оПерекрестная.Value=1 Then
  //Добавим столбец "CROSSCHECK", если проводилась перекрестная проверка
  aTab.AddColumn("CROSSCHECK","Пер. проверка",,20);
  aTab.Column("CROSSCHECK").MaxWidth:=120;
  aTab.Select();
  While aTab.Next() Do
    aTab.CROSSCHECK:=?(Number(aTab.FLAGS) and 8<>0,"OK","BAD");
  EndDo;
EndIf;
MainTab.Clear();
aTab.CopyTo(MainTab);