Это все диагностика
Технологический журнал платформы 1С - это важнейший инструмент в части диагностики и расследования проблем стабильности и производительности, а также, фактически, единственный официальный способ понять что происходит в работе платформы. Имея достаточно гибкие настройки, его можно использовать как для постоянного сбора данных в целях мониторинга работы системы, так и для расследования конкретных вопросов.
Сегодня мы пробежимся по почти всем событиям технологического журнала и рассмотрим примеры работы с ними и действия, которые их создают. Некоторые из событий мы рассмотрим подробней, а некоторые очень кратко, т.к. у них особая специфика, которую даже не всегда можно воспроизвести.
Весь материал ниже должен помочь в быстром старте при работе с технологическим журналом и пониманием что к чему, но вопрос самой настройки и анализа останется за бортом. Для изучения этих вопросов рекомендую обратиться к следующим материалам:
- Настройка параметров технологического журнала на ИТС
- Примеры настроек технологического журнала на ИТС
- Небольшая серия статей про технологический журнал для новичков (описание, настройка, анализ)
В конце публикации также даны ссылки на другие, более сложные материалы. Особенно хотел бы выделить серию публикаций Николая Васильева, в которых рассказано о работе с технологическим журналом с помощью регулярных выражений. Материалы выглядят недооцененными, рекомендую ознакомиться всем, кого эта тема интересует. Надеюсь, когда-нибудь материалы по этой теме будут выпускаться вновь.
И так, поехали! Нас ждет экскурсия по событиям технологического журнала.
В самых общих чертах
Для начала использования технологического журнала необходимо сформировать файл настроек logcfg и поместить его в каталог:
C:\Program Files\1cv8\conf\logcfg.xml
а если у вас 32-битное приложение, то сюда:
C:\Program Files (x86)\1cv8\conf\logcfg.xml
Конечно, у Вас могут быть вообще не стандартные пути установки платформы 1С, поэтому смотрите по ситуации. Файл настроек должен содержать как фильтр отбираемых событий, так и отборы по их свойствам, настройки сбора дампов и другое. Вот так выглядит простая настройка сбора информации об ошибках.
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump create="false"/>
<log location="D:\1CLogs\Errors\" history="120">
<event>
<eq property="name" value="admin"/>
</event>
<event>
<eq property="name" value="conn"/>
</event>
<event>
<eq property="name" value="excp"/>
</event>
<event>
<eq property="name" value="proc"/>
</event>
<event>
<eq property="name" value="qerr"/>
</event>
<event>
<eq property="name" value="scom"/>
</event>
<property name="all"/>
</log>
</config>
После этого указанные события с учетом фильтров будут записываться в текстовом формате в файлы логов в разрезе каталогов процессов.
Кроме указанных событий и фильтров к ним, в ТЖ можно настроить формирование дампов, планов запросов, сбор системной информации и кое-что еще. Мы сосредоточимся именно на описании событий и примеров их использования. Подробнее о файле настроек Вы можете узнать по предложенным ссылкам выше.
Анализировать данные файлов журнала можно с помощью текстового редактора, если они не большие, инструментов разработчика от Сергея Старых, регулярных выражений, перезаливкой логов в другие хранилища (базы данных или ElasticSearch) и другими удобными способами.
Вы можете поделиться в комментариях тем как Вы обрабатываете эти массивы данных.
События и примеры
В платформе 8.3.17 насчитывается больше 40 событий, доступных для сбора. Для удобства разбил их все на категории, но с некоторыми допущениям. То есть эта классификация больше для удобства при ознакомлении. В работе события из разных категорий очень часто соседствуют друг с другом в одном файле настроек и дополняют друг друга при анализе.
Начнем с наиболее популярных событий.
Самые используемые события
События, которые приходиться использовать чаще всего.
Самый распространенный способ использования ТЖ - это получение информации об ошибках. Это могут быть как ошибки конфигурации, так и ошибки самой платформы 1С из-за багов или особенностей окружения. В общем случае для этих целей используются:
- EXCP - Исключительная ситуация приложения системы «1С:Предприятие», которое штатно не обрабатывается и может послужить причиной аварийного завершения серверного процесса или подсоединенного к нему клиентского процесса
- EXCPCNTX - Событие, которые началось, но не закончились в момент возникновения нештатной ситуации
Обычно в файл настройки ТЖ добавляют именно событие EXCP, т.к. событие EXCPCNTX идет обычно следом, даже если явно не было добавлено в отбор. Событие EXCP, а EXCPCNTX дополняет его информацией о тех событиях, которые выполнялись и не были завершены в момент этого исключения. При этом событий контекста исключения может быть несколько. Подробнее об особенностях вывода контекстов исключений можно ознакомиться на ИТС. Оба события имеют следующие составы.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Диагностика ошибок | |||
Исключение | Исключительная ситуация приложения системы «1С:Предприятие», которое штатно не обрабатывается и может послужить причиной аварийного завершения серверного процесса или подсоединенного к нему клиентского процесса | EXCP | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Адрес базы данных | Адрес базы данных, в формате "<имя_сервера>\<имя_базы_данных>" | Database | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя исключения | Наименование программного исключения | exception | Строка |
Имя копии базы данных | имя копии базы данных | DBCopy | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Имя файла с дампом | Имя файла с дампом | dumpfile | Строка |
Исключение ОС | Описание исключения операционной системы | osexception | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Описание исключения | Пояснения к программному исключению | descr | Строка |
Ошибка дампа | Описание ошибки, произошедшей в процессе построения дампа | dumperror | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
СУБД | СУБД источника данных | dbms | Тип СУБД |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Диагностика ошибок | |||
Контекст исключения | Событие, которые началось, но не закончились в момент возникновения нештатной ситуации | EXCPCNTX | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя рабочего сервера | Имя рабочего сервера | ServerComputerName | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Например, если вызвать на клиенте и на сервере такие процедуры, то исключения будут зафиксированы на клиентском и сервером ТЖ:
&НаКлиенте
Процедура ВызватьИсключениеНаКлиенте()
ВызватьИсключение "Ошибка на клиенте!";
КонецПроцедуры
&НаСервере
Процедура ВызватьИсключениеНаСервере()
ВызватьИсключение "Ошибка на сервере!";
КонецПроцедуры
То в ТЖ мы увидим такие сведения:
Это запись на стороне сервера.
12:44.352000-0,EXCP,3,process=rphost,p:processName=MyTempDbHost,OSThread=16456,t:clientID=13,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=23,SessionID=12,Usr=DefUser,AppID=1CV8C,Exception=580392e6-ba49-4280-ac67-fcd6f2180121,Descr='src\VResourceInfoBaseImpl.cpp(1129):
580392e6-ba49-4280-ac67-fcd6f2180121: Неспецифицированная ошибка работы с ресурсом
Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
8d366056-4d5a-4d88-a207-0ae535b7d28e: Ошибка на сервере!
{ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма(12)}: ВызватьИсключение "Ошибка на сервере!";
,
В логи попала только та ошибка, которая появилась на стороне сервера.
Это записи на стороне клиента.
12:17.488004-0,EXCP,4,process=1CV8C,OSThread=10992,Exception=8d366056-4d5a-4d88-a207-0ae535b7d28e,Descr='src\ExceptionWriterUIImpl.cpp(649), shown to the user:
8d366056-4d5a-4d88-a207-0ae535b7d28e: Ошибка на клиенте!
{ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма(5)}: ВызватьИсключение "Ошибка на клиенте!";
{ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма(20)}: ВызватьИсключениеНаКлиенте();
'
12:44.348006-0,EXCP,4,process=1CV8C,OSThread=10992,Exception=8d366056-4d5a-4d88-a207-0ae535b7d28e,Descr='src\ExceptionWriterUIImpl.cpp(649), shown to the user:
8d366056-4d5a-4d88-a207-0ae535b7d28e: Ошибка на сервере!
{ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма(12)}: ВызватьИсключение "Ошибка на сервере!";
{ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма(26)}: ВызватьИсключениеНаСервере();
'
Так как вызов процедур с исключениями во обоих случаях выполнялся со стороны клиента, то обе ошибки присутствуют в технологическом журнале клиента.
Таким образом, собирая информацию об ошибках и исключениях как на стороне сервера, так и на стороне клиента, мы можем отслеживать стабильную работу информационной системы, ошибки компонентов платформы 1С, корректную настройку сервера, а также проблемы клиентских приложений. Да, можно настроить технологический журнал не только на сервер, но и на клиентских компьютерах, что позволит отслеживать проблемы клиентских приложений и создать процесс проактивной работы по их решению.
Ранее мы говорили, что при обнаружении бесконечной рекурсии в клиентском коде - само клиентское приложение падает. Как это отразится в ТЖ?
&НаКлиенте
Процедура КомандаВыполнитьБесконечнуюРекурсию(Команда)
Рекурсия();
КонецПроцедуры
&НаКлиенте
Процедура Рекурсия()
Рекурсия();
КонецПроцедуры
Вот такое содержимое в файлах ТЖ мы можем увидеть:
Ооочень большой контекст события, т.к. платформа 1С пыталась выполнить код бесконечной рекурсии, пока точно не определила, что это бесполезное дело.
17:34.520000-0,EXCP,4,process=1CV8C,OSThread=10992,OSException=1cv8c_8.3.17.1496_5d73162e_20200817021734_4800 disabled,Context='
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 32 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
...
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 0'
17:34.520001-0,EXCPCNTX,0,ClientComputerName=,ServerComputerName=,UserName=,ConnectString=,Context='
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 32 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
...
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 0'
17:34.520002-1280705000,EXCPCNTX,3,SrcName=CONN,process=1CV8C,OSThread=10992,ClientID=5,Txt=Outgoing connection closed,Context='
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 32 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
...
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 0'
17:34.520003-1280844981,EXCPCNTX,2,SrcName=CONN,process=1CV8C,OSThread=10992,ClientID=4,Txt=Outgoing connection closed,Context='
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 32 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
...
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 0'
17:34.520004-1281908004,EXCPCNTX,1,SrcName=SCOM,process=1CV8C,OSThread=10992,ProcessName=RHostRoot,SrcProcessName=RHostRoot,Context='
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 32 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
...
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 0'
17:34.520005-1282236005,EXCPCNTX,0,SrcName=PROC,process=1CV8C,OSThread=10992,Context='
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 32 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
...
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 39 : Рекурсия();
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 0'
Это было очень долго :)
На сервере мы также увидели событие исключения, но с косвенной информацией о происходящем. Т.к. клиентское приложение был непредвиденно завершено, то здесь мы видим информацию о принудительном завершении сетевого соединения.
17:34.804006-0,EXCP,0,process=rphost,OSThread=18280,ClientID=13,Exception=NetDataExchangeException,Descr='server_addr=(23)[fe80::4833:ae64:eeb:a885%2]:54793 descr=10054(0x00002746): Удаленный хост принудительно разорвал существующее подключение. line=1151 file=src\DataExchangeServerImpl.cpp'
17:34.804007-0,EXCPCNTX,0,ClientComputerName=,ServerComputerName=,UserName=,ConnectString=
Вот так ошибки на сервере могут иметь связь с событиями на клиенте. Поэтому в некоторых случаях анализировать нужно не только серверный технологический журнал, но и клиентский.
Кроме этого фиксируются и исключения самой платформы 1С, например, при падении рабочего процесса. Если мы просто "убьем" рабочий процесс, то в логах получим следующее.
Ряд исключений, появившихся из-за непредвиденного завершения рабочего процесса.
58:30.906031-0,EXCP,0,process=ragent,OSThread=7824,Exception=81029657-3fe6-4cd6-80c0-36de78fe6657,Descr='src\RemoteInterfaceImpl.cpp(848):
81029657-3fe6-4cd6-80c0-36de78fe6657: server_addr=tcp://YY-COMP:1560 descr=10054(0x00002746): Удаленный хост принудительно разорвал существующее подключение. line=1468 file=src\DataExchangeTcpClientImpl.cpp
server_addr=tcp://YY-COMP:1560 descr=10054(0x00002746): Удаленный хост принудительно разорвал существующее подключение. line=1998 file=src\DataExchangeTcpClientImpl.cpp'
58:35.906021-0,EXCP,0,process=ragent,OSThread=16596,Exception=f6f167a0-dcc9-49ad-8f8e-2c9d9904e4fe,Descr="OpenProcess('18372',18372):
f6f167a0-dcc9-49ad-8f8e-2c9d9904e4fe: 87(0x00000057): Параметр задан неверно. "
58:35.906024-0,EXCP,0,process=ragent,OSThread=16596,Exception=f6f167a0-dcc9-49ad-8f8e-2c9d9904e4fe,Descr="OpenProcess('18372',18372):
f6f167a0-dcc9-49ad-8f8e-2c9d9904e4fe: 87(0x00000057): Параметр задан неверно. "
Смысл в том, что связь с процессом rphost была потеряна и в следствии были сгенерированы эти ошибки).
Не выполняйте это на рабочем окружении!!!
PowerShell:
ps *rphost* | foreach-object { $_.kill() }
Кроме событий исключений и контекста исключений есть еще одно интересное событие - это ошибки запросов QERR. Основное назначение события: событие, связанное с обнаружением ошибок компиляции запроса или ограничением на уровне записей и полей базы данных. Состав полей данного события следующий.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Диагностика ошибок | |||
Ошибка запроса | Событие, связанное с обнаружением ошибок компиляции запроса или ограничением на уровне записей и полей базы данных | QERR | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Запрос | Текст запроса на встроенном языке, при выполнении которого обнаружилось значение NULL в поле, для которого такое значение недопустимо | query | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Описание исключения | Пояснения к программному исключению | descr | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Из описания понятно, что в общем случае событие отлавливает ошибки выполнения запросов. Например, если выполнить такой код:
&НаСервере
Процедура ОшибочныйЗапросНаСервере()
Текст = "ВЫБРАТЬ
| КакойТоСправочник.Ссылка КАК Ссылка
|ИЗ
| Справочник.ИмяНесуществующегоСправочника КАК КакойТоСправочник";
Запрос = Новый Запрос;
Запрос.Текст = Текст;
Результат = Запрос.Выполнить();
КонецПроцедуры
В запросе, как не трудно догадаться, имеется ошибка в названии справочника. При попытке выполнить такой запрос генерируются данные события QERR для рабочего процесса.
На самом деле событие QERR дополняется также и событиями EXCP и EXCPCNTX.
29:40.227022-0,QERR,4,process=rphost,p:processName=MyTempDbHost,OSThread=2840,t:clientID=12,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=4,SessionID=15,Usr=DefUser,AppID=1CV8C,Descr='{(4, 2)}: Таблица не найдена "Справочник.ИмяНесуществующегоСправочника"
<<?>>Справочник.ИмяНесуществующегоСправочника КАК КакойТоСправочник',Query='ВЫБРАТЬ
КакойТоСправочник.Ссылка КАК Ссылка
ИЗ
Справочник.ИмяНесуществующегоСправочника КАК КакойТоСправочник',Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ОшибочныйЗапросНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 52 : Результат = Запрос.Выполнить();'
29:40.227023-0,EXCP,4,process=rphost,p:processName=MyTempDbHost,OSThread=2840,t:clientID=12,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=4,SessionID=15,Usr=DefUser,AppID=1CV8C,Exception=580392e6-ba49-4280-ac67-fcd6f2180121,Descr='src\VResourceInfoBaseImpl.cpp(1129):
580392e6-ba49-4280-ac67-fcd6f2180121: Неспецифицированная ошибка работы с ресурсом
Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
8d366056-4d5a-4d88-a207-0ae535b7d28e: Ошибка при вызове метода контекста (Выполнить)
{ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма(52)}: Результат = Запрос.Выполнить();
f08d92f8-9eb2-4e19-9dd9-977d907cec2d
ae209c88-6b01-464c-adc9-0b72e240492f: {(4, 2)}: Таблица не найдена "Справочник.ИмяНесуществующегоСправочника"
<<?>>Справочник.ИмяНесуществующегоСправочника КАК КакойТоСправочник'
Таким образом, можно получить информацию о тексте запроса и описание ошибки.
Исключение на клиенте при попытке выполнения запроса.
29:40.261000-0,EXCP,3,process=1CV8C,OSThread=15852,Exception=8d366056-4d5a-4d88-a207-0ae535b7d28e,Descr='src\ExceptionWriterUIImpl.cpp(649), shown to the user:
8d366056-4d5a-4d88-a207-0ae535b7d28e: Ошибка при вызове метода контекста (Выполнить)
{ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма(52)}: Результат = Запрос.Выполнить();
{ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма(58)}: ОшибочныйЗапросНаСервере();
f08d92f8-9eb2-4e19-9dd9-977d907cec2d
f6f167a0-dcc9-49ad-8f8e-2c9d9904e4fe: {(4, 2)}: Таблица не найдена "Справочник.ИмяНесуществующегоСправочника"
<<?>>Справочник.ИмяНесуществующегоСправочника КАК КакойТоСправочник'
Исключение зафиксировано на клиенте, т.к. исходный вызов серверной процедуры был выполнен с клиентского приложения.
И последнее событие в части диагностики ошибок это SCRIPTCIRCREFS: сбор информации о циклических ссылках при исполнении встроенного языка. Циклические ссылки - это особое зло в коде встроенного языка, которое может создавать труднорешаемые проблемы в части производительности и стабильности. Состав события следующий.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Диагностика ошибок | |||
Циклические ссылки | Сбор информации о циклических ссылках при исполнении встроенного языка | SCRIPTCIRCREFS | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Метод с циклической ссылкой | Метод, в котором обнаружена циклическая ссылка | ProcedureName | Строка |
Модуль с циклической ссылкой | Модуль, в котором обнаружена циклическая ссылка | ModuleName | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Описание циклической ссылки | Текстовое описание циклической ссылки | cycles | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Событие доступно начиная с версии платформы 8.3.10. Подробнее можно прочитать здесь. Это очень полезное нововведение для диагностики циклических ссылок, которые могут приводить к утечкам памяти и вороху других проблем. Для начала сбора информации в технологическом журнале необходимо добавить фильтр на событие SCRIPTCIRCREFS и специальную опцию для сбора информации.
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump create="false" />
<log location="D:\1CLogs\SCRIPTCIRCREFS" history="24">
<event>
<eq property="name" value="scriptcircrefs" />
</event>
<property name="all" />
</log>
<scriptcircrefs />
</config>
При такой конфигурации ТЖ, если мы выполним код с циклической ссылкой, например, такой:
Структура1 = Новый Структура("СсылкаНаСтруктуру2");
Структура2 = Новый Структура("СсылкаНаСтруктуру1");
Структура1.СсылкаНаСтруктуру2 = Структура2;
Структура2.СсылкаНаСтруктуру1 = Структура1;
В логи ТЖ попадет примерно такая запись.
31:42.864025-1,SCRIPTCIRCREFS,3,process=rphost,p:processName=MyTempDbHost,OSThread=14024,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,ModuleName=Обработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма,ProcedureName=ЦиклическиеСсылкиНаСервере,Cycles='VariableName:
Структура1
CircularRefsMembers:
Структура1, Структура1.СсылкаНаСтруктуру2, Структура1
VariableName:
Структура2
CircularRefsMembers:
Структура2, Структура2.СсылкаНаСтруктуру1, Структура2
',Context='Форма.Вызов : Обработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ЦиклическиеСсылкиНаСервере
Обработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 79 : КонецПроцедуры'
Циклические ссылки не всегда являются ошибками, но допускать такие ситуации не рекомендуется. Дополнительно по этой теме Вы можете прочитать по этим ссылкам:
Это последнее событие из категории диагностики ошибок. Перейдем к следующим событиям.
Технологический журнал имеет набор событий для анализа взаимодействия с СУБД, получения текста запросов и некоторых других показателей. Вот эти события.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Взаимодействие с СУБД | |||
Запрос к базе данных | Исполнение запросов к модели базы данных 1С:Предприятия 8 | SDBL | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Адрес базы данных | Адрес базы данных, в формате "<имя_сервера>\<имя_базы_данных>" | Database | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя копии базы данных | имя копии базы данных | DBCopy | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Оператор обращения к БД | Текст оператора на встроенном языке внутренней модели базы данных 1С:Предприятия (SDBL) | sdbl | Строка |
Получено записей | Количество полученных записей базы данных | rows | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Взаимодействие с СУБД | |||
SQL, Файловая СУБД | Исполнение операторов SQL файловой СУБД | DBV8DBEng | |
SQL-запрос | Текст оператора SQL | sql | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Адрес базы данных | Адрес базы данных, в формате "<имя_сервера>\<имя_базы_данных>" | Database | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Изменено записей | Количество измененных записей базы данных | rowsaffected | Число |
Имя копии базы данных | имя копии базы данных | DBCopy | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Количество параметров опе | Количество параметров оператора SQL для файлового варианта информационной базы. Параметры используются для передачи длинных двоичных данных. | NParams | Число |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
План запроса | План выполненного SQL запроса, построенный сервером баз данных (текст запроса расположен в свойстве "SQL") | planSQLText | Строка |
Получено записей | Количество полученных записей базы данных | rows | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
СУБД | СУБД источника данных | dbms | Тип СУБД |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Взаимодействие с СУБД | |||
SQL, Microsoft SQL Server | Исполнение операторов SQL СУБД Microsoft SQL Server | DBMSSQL | |
ID сервер<->СУБД | Строковое представление идентификатора соединения сервера системы «1С:Предприятие» с сервером баз данных в терминах сервера баз данных | dbpid | Строка |
SQL-запрос | Текст оператора SQL | sql | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Адрес базы данных | Адрес базы данных, в формате "<имя_сервера>\<имя_базы_данных>" | Database | Строка |
Виновник | Признак того, что поток является виновником транзакционных блокировок СУБД | lka | Булево |
Виновник, время | Время в секундах, прошедшее с момента обнаружения, что поток является виновником блокировок | lkato | Число |
Виновник, кем обнаружен | Список номеров запросов к СУБД, «кто кого заблокировал», обнаруживших в течение события, что поток является виновником блокировок. Например, ‘271,273,274’ | lkaid | Число |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Жертва | Признак того, что поток является жертвой транзакционной блокировки СУБД | lkp | Булево |
Жертва, виновник | Номер соединения виновника блокировки, если поток является жертвой | lksrc | Число |
Жертва, время | Время в секундах, прошедшее с момента обнаружения, что поток является жертвой блокировки | lkpto | Число |
Жертва, кем обнаружена | Список номеров запросов к СУБД, «кто кого заблокировал», обнаруживших в течение события, что поток является жертвой блокировок. Например, ‘271,273,274’. | lkpid | Строка |
Изменено записей | Количество измененных записей базы данных | rowsaffected | Число |
Имя копии базы данных | имя копии базы данных | DBCopy | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
План запроса | План выполненного SQL запроса, построенный сервером баз данных (текст запроса расположен в свойстве "SQL") | planSQLText | Строка |
Получено записей | Количество полученных записей базы данных | rows | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
СУБД | СУБД источника данных | dbms | Тип СУБД |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Взаимодействие с СУБД | |||
MS SQL Server, первое соединение | Событие формируется в момент первого соединения сервера платформы с СУБД MS SQL Server и содержит результат выбора провайдера для работы с СУБД | DBMSSQLCONN | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Адрес базы данных | Адрес базы данных, в формате "<имя_сервера>\<имя_базы_данных>" | Database | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя копии базы данных | имя копии базы данных | DBCopy | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Провайдер NC 2005 | 16-ричный код возврата после попытки соединения с помощью данного провайдера (NC - Native Client). Свойство отсутствует, если попытка соединения с помощью данного провайдера не предпринималась. | hResultNC2005 | Строка |
Провайдер NC 2008 | 16-ричный код возврата после попытки соединения с помощью данного провайдера (NC - Native Client). Свойство отсутствует, если попытка соединения с помощью данного провайдера не предпринималась. | hResultNC2008 | Строка |
Провайдер NC 2012 | 16-ричный код возврата после попытки соединения с помощью данного провайдера (NC - Native Client). Свойство отсутствует, если попытка соединения с помощью данного провайдера не предпринималась. | hResultNC2012 | Строка |
Провайдер OLE DB | 16-ричный код возврата после попытки соединения с помощью данного провайдера. Свойство отсутствует, если попытка соединения с помощью данного провайдера не предпринималась. | hResultOLEDB | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
СУБД | СУБД источника данных | dbms | Тип СУБД |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Взаимодействие с СУБД | |||
SQL, PostgreSQL | Исполнение операторов SQL СУБД PostgreSQL | DBPOSTGRS | |
ID сервер<->СУБД | Строковое представление идентификатора соединения сервера системы «1С:Предприятие» с сервером баз данных в терминах сервера баз данных | dbpid | Строка |
SQL-запрос | Текст оператора SQL | sql | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Адрес базы данных | Адрес базы данных, в формате "<имя_сервера>\<имя_базы_данных>" | Database | Строка |
Виновник | Признак того, что поток является виновником транзакционных блокировок СУБД | lka | Булево |
Виновник, время | Время в секундах, прошедшее с момента обнаружения, что поток является виновником блокировок | lkato | Число |
Виновник, кем обнаружен | Список номеров запросов к СУБД, «кто кого заблокировал», обнаруживших в течение события, что поток является виновником блокировок. Например, ‘271,273,274’ | lkaid | Число |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Жертва | Признак того, что поток является жертвой транзакционной блокировки СУБД | lkp | Булево |
Жертва, виновник | Номер соединения виновника блокировки, если поток является жертвой | lksrc | Число |
Жертва, время | Время в секундах, прошедшее с момента обнаружения, что поток является жертвой блокировки | lkpto | Число |
Жертва, кем обнаружена | Список номеров запросов к СУБД, «кто кого заблокировал», обнаруживших в течение события, что поток является жертвой блокировок. Например, ‘271,273,274’. | lkpid | Строка |
Имя копии базы данных | имя копии базы данных | DBCopy | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
План запроса | План выполненного SQL запроса, построенный сервером баз данных (текст запроса расположен в свойстве "SQL") | planSQLText | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
СУБД | СУБД источника данных | dbms | Тип СУБД |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Взаимодействие с СУБД | |||
SQL, Oracle Database | Исполнение операторов SQL СУБД Oracle Database | DBORACLE | |
ID сервер<->СУБД | Строковое представление идентификатора соединения сервера системы «1С:Предприятие» с сервером баз данных в терминах сервера баз данных | dbpid | Строка |
SQL-запрос | Текст оператора SQL | sql | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Адрес базы данных | Адрес базы данных, в формате "<имя_сервера>\<имя_базы_данных>" | Database | Строка |
Виновник | Признак того, что поток является виновником транзакционных блокировок СУБД | lka | Булево |
Виновник, время | Время в секундах, прошедшее с момента обнаружения, что поток является виновником блокировок | lkato | Число |
Виновник, кем обнаружен | Список номеров запросов к СУБД, «кто кого заблокировал», обнаруживших в течение события, что поток является виновником блокировок. Например, ‘271,273,274’ | lkaid | Число |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Жертва | Признак того, что поток является жертвой транзакционной блокировки СУБД | lkp | Булево |
Жертва, виновник | Номер соединения виновника блокировки, если поток является жертвой | lksrc | Число |
Жертва, время | Время в секундах, прошедшее с момента обнаружения, что поток является жертвой блокировки | lkpto | Число |
Жертва, кем обнаружена | Список номеров запросов к СУБД, «кто кого заблокировал», обнаруживших в течение события, что поток является жертвой блокировок. Например, ‘271,273,274’. | lkpid | Строка |
Изменено записей | Количество измененных записей базы данных | rowsaffected | Число |
Имя копии базы данных | имя копии базы данных | DBCopy | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
План запроса | План выполненного SQL запроса, построенный сервером баз данных (текст запроса расположен в свойстве "SQL") | planSQLText | Строка |
Получено записей | Количество полученных записей базы данных | rows | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
СУБД | СУБД источника данных | dbms | Тип СУБД |
Транзакция открыта | Признак того, была ли открыта транзакция на момент начала события | trans | Булево |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Взаимодействие с СУБД | |||
SQL, IBM DB2 | Исполнение операторов SQL СУБД IBM DB2 | DB2 | |
ID сервер<->СУБД | Строковое представление идентификатора соединения сервера системы «1С:Предприятие» с сервером баз данных в терминах сервера баз данных | dbpid | Строка |
SQL-запрос | Текст оператора SQL | sql | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Адрес базы данных | Адрес базы данных, в формате "<имя_сервера>\<имя_базы_данных>" | Database | Строка |
Виновник | Признак того, что поток является виновником транзакционных блокировок СУБД | lka | Булево |
Виновник, время | Время в секундах, прошедшее с момента обнаружения, что поток является виновником блокировок | lkato | Число |
Виновник, кем обнаружен | Список номеров запросов к СУБД, «кто кого заблокировал», обнаруживших в течение события, что поток является виновником блокировок. Например, ‘271,273,274’ | lkaid | Число |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Жертва | Признак того, что поток является жертвой транзакционной блокировки СУБД | lkp | Булево |
Жертва, виновник | Номер соединения виновника блокировки, если поток является жертвой | lksrc | Число |
Жертва, время | Время в секундах, прошедшее с момента обнаружения, что поток является жертвой блокировки | lkpto | Число |
Жертва, кем обнаружена | Список номеров запросов к СУБД, «кто кого заблокировал», обнаруживших в течение события, что поток является жертвой блокировок. Например, ‘271,273,274’. | lkpid | Строка |
Изменено записей | Количество измененных записей базы данных | rowsaffected | Число |
Имя копии базы данных | имя копии базы данных | DBCopy | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
План запроса | План выполненного SQL запроса, построенный сервером баз данных (текст запроса расположен в свойстве "SQL") | planSQLText | Строка |
Получено записей | Количество полученных записей базы данных | rows | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
СУБД | СУБД источника данных | dbms | Тип СУБД |
Событие SDBL является самым универсальным, т.к. не привязано к используемой СУБД и работает одинакового для них всех. Может использоваться для диагностики работы платформы с моделью данных, расследованию появляющихся ошибок при работе с ней. Если остальные события в этой категории - это то как платформа работает с базой данных со стороны СУБД, то SDBL - это то как выполняется работа с СУБД глазами платформы 1С. А раз так, то можно получить различную дополнительную информацию именно в ее контексте: информацию по транзакциях платформы, как она видит сформированный запрос, замеры времени выполнения операций и многое другое.
Для примера возьмем немного простого кода, в котором в рамках транзакции создаем новый элемент справочника, если он еще не создан.
&НаСервере
Процедура ВыполнениеЗапросаSDBLНаСервере()
НачатьТранзакцию();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Справочник1.Ссылка КАК Ссылка
|ИЗ
| Справочник.Справочник1 КАК Справочник1
|ГДЕ
| Справочник1.Наименование = &Наименование";
Запрос.УстановитьПараметр("Наименование", "Тест");
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
НовыйОбъект = Справочники.Справочник1.СоздатьЭлемент();
НовыйОбъект.Наименование = "Тест";
НовыйОбъект.Записать();
КонецЕсли;
ЗафиксироватьТранзакцию();
КонецПроцедуры
В серверном ТЖ в этом случае мы увидим серию событий SDBL.
Сначала выполняются служебные действия. На них мы подробно не будем останавливаться.
01:33.503020-1,SDBL,4,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=0,Sdbl=SCHEMA SET GLOBAL,Rows=0
01:33.503022-1,SDBL,4,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=0,Sdbl=schema get local,Rows=0
Дальше уже интереснее. Платформа вызывает процедуру начала транзакции.
01:33.503039-0,SDBL,6,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,Func=BeginTransaction,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 89 : НачатьТранзакцию();'
Далее мы видим выполнение запроса, проверяющего наличие элемента справочника.
01:33.518001-14953,SDBL,6,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,Sdbl='SELECT
Q_000_T_001.ID
FROM
Reference47 Q_000_T_001
WHERE
(Q_000_T_001.Description = "Тест")
',Rows=1,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 101 : РезультатЗапроса = Запрос.Выполнить();'
Если элемент справочника не был найден, то выполняется создание нового. При записи элемента формируются сразу несколько событий SDBL.
01:33.518020-3,SDBL,6,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,Sdbl=SELECT MAX(Code) FROM Reference47,Rows=1,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 107 : НовыйОбъект.Записать();'
01:33.518039-5,SDBL,6,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,Sdbl='INSERT INTO Reference47 (Marked, PredefinedID, Code, Description) VALUES(FALSE,0x00000000000000000000000000000000,"000000001","Тест")',Rows=1,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 107 : НовыйОбъект.Записать();'
01:33.518043-3,SDBL,6,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,Sdbl='SELECT ID FROM Reference47 WHERE Code = "000000001"',Rows=1,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 107 : НовыйОбъект.Записать();'
01:33.518053-3,SDBL,6,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,Sdbl=' SELECT Content FROM DataHistorySettings WHERE MetadataId = 0xb064d9a2cb0592a44987110afe4ef0de',Rows=1,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 107 : НовыйОбъект.Записать();'
Первое событие получаем максимальный код, затем идет операция вставки новых данных в таблицу и получение ID нового элемента. Последнее событие связано с механизмом истории данных.
Ну а завершается серия событий фиксацией транзакции.
01:33.518058-15020,SDBL,5,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=0,Func=Transaction,Func=CommitTransaction,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 111 : ЗафиксироватьТранзакцию();'
01:33.534001-30964,SDBL,4,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=0,Func=HoldConnection,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 111 : ЗафиксироватьТранзакцию();'
Это описание, конечно, в общих чертах. Копать тут можно еще и еще.
То есть события SDBL позволяют анализировать как именно платформа 1С видит работу с моделью баз данных, вне зависимости от того какая фактически СУБД используется.
Как известно, платформа 1С позволяет использовать следующие виды СУБД:
- Файловая (DBV8DBEng)
- Microsoft SQL Server (DBMSSQL и DBMSSQLCONN)
- PostgreSQL (DBPOSTGRS)
- Oracle Database (DBORACLE)
- IBM DB2 (DB2)
Для каждой СУБД есть свое событие для диагностики, а для SQL Server аж целых два! Рассматривать каждой из этих событий мы не будем, хоть в них и есть существенные различия. Но принцип один и тот-же: получить запрос на стороне СУБД и некоторые его характеристики. Самой популярной по количеству баз, скорее всего, является файловая, но с точки зрения диагностики она не сильно интересна. Поэтому возьмем вторую по популярности СУБД (но это не точно) - SQL Server и рассмотрим какие данные сохраняются в ТЖ для события DBMSSQL).
Для примера выполним тот же самый код, что и выше для событий SDBL. Также дополним файл настроек ТЖ опцией сбора планов запросов.
Все начинается со служебных запросов платформы 1С по установке уровня изоляции транзакций. Этот служебный запрос не всегда выполняется.
49:44.366036-1,DBMSSQL,5,process=rphost,p:processName=MyTempDbHost,OSThread=24480,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,dbpid=54,Sql='SET TRANSACTION ISOLATION LEVEL READ COMMITTED
После этого инициализируется начало транзакции на уровне SQL Server.
BEGIN TRANSACTION',Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 89 : НачатьТранзакцию();'
Как и для SDBL, далее идет запрос проверки наличия элемента справочника в базе данных.
49:44.366041-1,DBMSSQL,6,process=rphost,p:processName=MyTempDbHost,OSThread=24480,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,dbpid=54,Sql="SELECT
T1._IDRRef
FROM dbo._Reference47 T1
WHERE (T1._Description = ?)
p_0: 'Тест'
",Rows=0,RowsAffected=0,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 101 : РезультатЗапроса = Запрос.Выполнить();'
Т.к. элемента не было, но далее мы видим несколько запросов для записи нового объекта в базу данных.
49:44.366051-1,DBMSSQL,6,process=rphost,p:processName=MyTempDbHost,OSThread=24480,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,dbpid=54,Sql='SELECT
MAX(T1._Code)
FROM dbo._Reference47 T1',Rows=1,RowsAffected=-1,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 107 : НовыйОбъект.Записать();'
49:44.366068-1,DBMSSQL,6,process=rphost,p:processName=MyTempDbHost,OSThread=24480,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,dbpid=54,Sql='INSERT INTO dbo._Reference47 (_IDRRef,_Marked,_PredefinedID,_Code,_Description) VALUES(?,?,?,?,?)',Prm="
p_0: 0xB681D8F2CA20664B11EAE1169D5AADC6
p_1: FALSE
p_2: 0x00000000000000000000000000000000
p_3: '000000001'
p_4: 'Тест'
",RowsAffected=1,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 107 : НовыйОбъект.Записать();'
49:44.366070-1,DBMSSQL,6,process=rphost,p:processName=MyTempDbHost,OSThread=24480,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,dbpid=54,Sql='SELECT
T2._IDRRef,
T2._Version
FROM dbo._Reference47 T2
WHERE T2._IDRRef IN (?)
p_0: 0xB681D8F2CA20664B11EAE1169D5AADC6
',Rows=1,RowsAffected=-1,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 107 : НовыйОбъект.Записать();'
49:44.366074-1,DBMSSQL,6,process=rphost,p:processName=MyTempDbHost,OSThread=24480,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,dbpid=54,Sql="SELECT
T1._IDRRef
FROM dbo._Reference47 T1
WHERE T1._Code = ?
p_0: '000000001'
",Rows=1,RowsAffected=-1,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 107 : НовыйОбъект.Записать();'
49:44.366079-1,DBMSSQL,5,process=rphost,p:processName=MyTempDbHost,OSThread=24480,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,dbpid=54,Sql="{call sp_executesql(N'SELECT Creation,Modified,Attributes,DataSize,BinaryData FROM Params WHERE FileName = @P1 ORDER BY PartNo', N'@P1 nvarchar(128)', N'ibparams.inf')}",Rows=1,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 107 : НовыйОбъект.Записать();'
В конце фиксируется транзакция и операция завершается.
49:44.366083-1,DBMSSQL,5,process=rphost,p:processName=MyTempDbHost,OSThread=24480,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,dbpid=54,Sql=COMMIT TRANSACTION,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 111 : ЗафиксироватьТранзакцию();'
Профит!
В общем плане все эти события похожи на серию для SDBL, но здесь все же больше информации о взаимодействии с СУБД, плюс есть дополнительные запросы по работе с метаданными.
Дополнительно мы добавляли в файл настройки ТЖ опцию "plansql", поэтому в логах можно увидеть текстовое представление планов запросов. Выглядит это примерно так:
58:37.507025-1,DBMSSQL,6,process=rphost,p:processName=MyTempDbHost,OSThread=22564,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,dbpid=54,Sql="SELECT
T1._IDRRef
FROM dbo._Reference47 T1
WHERE (T1._Description = ?)
p_0: 'Тест'
",Rows=1,RowsAffected=-1,planSQLText='
1, 1, 1, 0.00313, 0.000158, 23, 0.00328, 1, |--Index Seek(OBJECT:([MyTempDbHost].[dbo].[_Reference47].[_Reference47_3] AS [T1]), SEEK:([T1].[_Description]=[@P1]) ORDERED FORWARD)
',Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 101 : РезультатЗапроса = Запрос.Выполнить();'
Вот эта часть и есть план запроса:
|--Index Seek(OBJECT:([MyTempDbHost].[dbo].[_Reference47].[_Reference47_3] AS [T1]), SEEK:([T1].[_Description]=[@P1]) ORDERED FORWARD)
На продуктовый серверах события диагностики взаимодействия с СУБД нужно использовать с большой осторожностью, т.к. они могут не только быстро занять все свободное пространство на дисках, но и значительно снизить производительность. Тем более для поиска тяжелых запросов и планов их выполнения можно использовать собственные средства SQL Server (или другой СУБД).
И в конце данной категории рассмотрим событие DBMSSQLCONN, которое позволяет определить наличие необходимых библиотек для корректной работы платформы 1С со SQL Server. Все, наверное, знают, что для работы с этой СУБД нужно на сервере устанавливать SQL Server Native Client. Это событие позволяет определить установлен ли он на сервере и какой версии. Событие возникает только при первом подключении платформы к БД и может выглядеть так:
10:39.193030-1,DBMSSQLCONN,3,process=rphost,p:processName=MyTempDbHost,OSThread=2520,t:clientID=7,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=1,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,hResultNC2012=0x00000000
В этом случае говорится о том, что используется Native Client 2012. И это хорошо. Само событие собирается в редких случаях, когда есть проблемы с подключением к СУБД.
Теперь можно перейти к другим интересным событиям технологического журнала.
Платформа 1С имеет собственный менеджер блокировок. Управляемых блокировок. Для их диагностики в технологическом журнале используются три события:
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Управляемые блокировки | |||
Блокировка | Управление транзакционными блокировками в Управляемом режиме | TLOCK | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Блокировки | Список управляемых транзакционных блокировок | Locks | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя исключения | Наименование программного исключения | exception | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Области | Области | Regions | Строка |
Ожидания | Список соединений, с которыми идет столкновение по управляемым транзакционным блокировкам | WaitConnections | Строка |
Описание исключения | Пояснения к программному исключению | descr | Строка |
Ошибка | Описание ошибки | error | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Управляемые блокировки | |||
Таймаут | Превышено максимальное время ожидания транзакционной блокировки | TTIMEOUT | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Ожидания | Список соединений, с которыми идет столкновение по управляемым транзакционным блокировкам | WaitConnections | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Управляемые блокировки | |||
Взаимоблокировка | Обнаружена взаимоблокировка в Управляемом режиме | TDEADLOCK | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Пары блокировки | Список пар транзакций, образующих взаимную блокировку | DeadlockConnectionIntersections | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Как уже понятно из названия, событие TLOCK показывает действия установки управляемых блокировок - как явно из кода встроенного языка, так и автоматические действия самой платформы. Событие TTIMEOUT регистрирует превышения времени ожидания управляемой блокировки. В параметрах информационной базы обычно указано 60 секунд времени ожидания, вот это как раз для этого. И событие TDEADLOCK, которое позволяет отлавливать управляемые взаимоблокировки и бороться с ними.
Рассмотрим несколько простых примеров, когда эти события возникают. Выполним вот такой код.
&НаСервере
Процедура ПростаяУправляемаяБлокировкаНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Справочник1.Ссылка КАК Ссылка
|ИЗ
| Справочник.Справочник1 КАК Справочник1
|ГДЕ
| Справочник1.Наименование = &Наименование";
Запрос.УстановитьПараметр("Наименование", "Тест");
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
НачатьТранзакцию();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ОсобыйРегистр");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Набор = РегистрыСведений.ОсобыйРегистр.СоздатьНаборЗаписей();
Набор.Отбор.Ссылка.Установить(Выборка.Ссылка);
Набор.Прочитать();
// Тут какие-то действия
Набор.Записать();
ЗафиксироватьТранзакцию();
КонецЕсли;
КонецПроцедуры
Как думаете, сколько раз здесь устанавливается управляемая блокировка? Это нам подскажет ТЖ:
Сначала идет событие установки эксклюзивной блокировки, которую мы установили явно.
57:27.063017-3,TLOCK,4,process=rphost,p:processName=MyTempDbHost,OSThread=24120,t:clientID=24,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=6,SessionID=21,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Regions=InfoRg49.DIMS,Locks='InfoRg49.DIMS Exclusive Fld50=47:b681d8f2ca20664b11eae1169d5aadc6',WaitConnections=,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ПростаяУправляемаяБлокировкаНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 144 : Блокировка.Заблокировать();'
Затем идет управляемая разделяемая блокировка, которую платформа 1С устанавливает при вызове метода "Прочитать()" для набора записей.
57:27.063027-3,TLOCK,4,process=rphost,p:processName=MyTempDbHost,OSThread=24120,t:clientID=24,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=6,SessionID=21,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Regions=InfoRg49.DIMS,Locks='InfoRg49.DIMS Shared Fld50=47:b681d8f2ca20664b11eae1169d5aadc6',WaitConnections=,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ПростаяУправляемаяБлокировкаНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 148 : Набор.Прочитать();'
И в конце мы увидим еще одно событие установки эксклюзивной блокировки при записи набора. Ее платформа также устанавливает автоматически.
57:27.063035-3,TLOCK,4,process=rphost,p:processName=MyTempDbHost,OSThread=24120,t:clientID=24,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=6,SessionID=21,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Regions=InfoRg49.DIMS,Locks='InfoRg49.DIMS Exclusive Fld50=47:b681d8f2ca20664b11eae1169d5aadc6',WaitConnections=,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ПростаяУправляемаяБлокировкаНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 150 : Набор.Записать();'
По завершению транзакции все блокировки будут сняты.
Если мы запустим этот код в двух сеансах и в первом, например с помощью точки остановка, остановим выполнение на строке "ЗафиксироватьТранзакцию()", но спустя некоторое время получим ошибку превышения времени ожидания блокировки.
В ТЖ эта запись будет выглядеть так.
Сначала в ТЖ мы увидим события, когда одно из соединений накладывает блокировки на ресурсы. В нашем случае это "connectionID" равное 8.
11:15.624037-3,TLOCK,4,process=rphost,p:processName=MyTempDbHost,OSThread=19392,t:clientID=28,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=8,SessionID=23,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Regions=InfoRg49.DIMS,Locks='InfoRg49.DIMS Exclusive Fld50=47:b681d8f2ca20664b11eae1169d5aadc6',WaitConnections=,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ПростаяУправляемаяБлокировкаНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 144 : Блокировка.Заблокировать();'
11:15.624043-3,TLOCK,4,process=rphost,p:processName=MyTempDbHost,OSThread=19392,t:clientID=28,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=8,SessionID=23,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Regions=InfoRg49.DIMS,Locks='InfoRg49.DIMS Shared Fld50=47:b681d8f2ca20664b11eae1169d5aadc6',WaitConnections=,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ПростаяУправляемаяБлокировкаНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 148 : Набор.Прочитать();'
11:15.624051-3,TLOCK,4,process=rphost,p:processName=MyTempDbHost,OSThread=19392,t:clientID=28,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=8,SessionID=23,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Regions=InfoRg49.DIMS,Locks='InfoRg49.DIMS Exclusive Fld50=47:b681d8f2ca20664b11eae1169d5aadc6',WaitConnections=,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ПростаяУправляемаяБлокировкаНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 150 : Набор.Записать();'
А после, через небольшой промежуток времени, появляется событие TTIMEOUT уже другого соединения.
11:43.832000-0,TTIMEOUT,5,process=rphost,p:processName=MyTempDbHost,OSThread=8144,t:clientID=33,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=9,SessionID=24,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,WaitConnections=8,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ПростаяУправляемаяБлокировкаНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 144 : Блокировка.Заблокировать();'
Свойство "WaitConnections=8" нам подсказывает, что ошибка возникла из-за ожидания блокировки конкретным соединением. Вот так с помощью анализа событий TLOCK и TTIMEOUT можно определить кто, что блокирует и кто, кого ждет.
Событие TDEADLOCK воспроизвести не сложно. Выше мы уже видели, что при чтении набора записей методом "Прочитать()" платформа накладывает разделяемую блокировку. Если в одном сеансе такая блокировка наложена, то во втором никто не мешает наложить ее еще раз, она же разделяемая.
Если любой из этих сеансов после этого попытается набор записать, то неизбежно появится ошибка взаимоблокировки.
Вот так это выглядит в файле логов.
25:05.754005-0,TDEADLOCK,5,process=rphost,p:processName=MyTempDbHost,OSThread=22852,t:clientID=28,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=8,SessionID=23,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,DeadlockConnectionIntersections='8 9 InfoRg49.DIMS Exclusive Fld50=47:b681d8f2ca20664b11eae1169d5aadc6,9 8 InfoRg49.DIMS Exclusive Fld50=47:b681d8f2ca20664b11eae1169d5aadc6',Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ПростаяУправляемаяБлокировкаНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 150 : Набор.Записать();'
С помощью свойства "DeadlockConnectionIntersections" можно понять какие соединения и по каким ресурсам конфликтуют.
У всех перечисленных событий есть контекст и по нему можно определить где в коде возникает проблема. Однако для полной картины всегда нужно собирать не только события TTIMEOUT и TDEADLOCK, но и сам TLOCK, чтобы понимать какие события приводят к ошибке.
Теперь можем идти дальше.
Для целей администрирования кластера и сервера также предоставляется ряд событий.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Кластер и сервер | |||
Административное действие | Управляющее воздействие администратора кластера серверов 1С:Предприятия 8 | ADMIN | |
ID процесса | Идентификатор процесса | pid | Число |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
UUID ИБ | Идентификатор (UUID) информационной базы | InfoBaseID | Строка |
UUID кластера | Идентификатор (UUID) кластера | ClusterID | Строка |
UUID правила | UUID правила | RuleID | Строка |
UUID процесса | UUID процесса | ProcessID | Строка |
UUID сервера | Идентификатор (UUID) сервера | ServerID | Строка |
UUID сщудинения | идентификатор (UUID) соединения | ConnectionID | Строка |
Безопасный расход памяти | Безопасный расход памяти за один вызов | SafeCallMemoryLimit | Число |
Блокировка начала сеансов | Блокировка начала сеансов включена | ConnDn | Число |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Диапазон портов | Диапазон портов | Ranges | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Допустимое отклонение кол | Допустимое отклонение количества ошибок сервера | ErrorsCountThreshold | Число |
Допустимый объем памяти | Допустимый объем памяти | MaxMemorySize | Число |
Доступные для расширения | Доступные для расширения модули | ModulesAvailableForExtension | Строка |
Запись разрешена | Запись разрешена | AllowedWrite | Булево |
Значение | Значения параметров функции администрирования кластера | val | Строка |
Идентификатор пользовател | Идентификатор пользователя СУБД | DBUID | Строка |
Идентификатор сеанса | Идентификатор (UUID) сеанса | SeanceID | Строка |
Имя администратора | Имя администратора кластера или центрального сервера | administrator | Строка |
Имя БД | Имя БД | DB | Строка |
Имя ИБ | Имя информационной базы | ref | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя профиля безопасности | Имя профиля безопасности | Profile | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя сервера | Имя сервера | ServerName | Строка |
Имя события | Имя события | name | Строка |
Имя файла | Имя файла | FileName | Строка |
Имя центрального сервера | Имя центрального сервера | CentralServer | Строка |
Интервал перед остановкой | Интервал перед остановкой рабочего процесса | ExpirationTimeout | Число |
Интервал перезапуска рабочих процессов | Интервал перезапуска рабочих процессов | LifeTimeLimit | Число |
Интервал превышения допустимого объема памяти | Интервал превышения допустимого объема памяти | MaxMemoryTimeLimit | Число |
Код разрешения для блокировки начала сеансов | Код разрешения для блокировки начала сеансов | DnAlCd | Число |
Количество ИБ на процесс | Количество ИБ на процесс | MaxRPIBQuantity | Число |
Количество соединений на процесс | Количество соединений на процесс | MaxRPIBConnections | Число |
Командная строка | Командная строка | Cmd | Строка |
Компьютер | Имя компьютера | host | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Конец блокировки начала сеансов | Конец блокировки начала сеансов | DnTo | Число |
Контекст | Контекст исполнения | context | Строка |
Контрольная сумма внешней | Контрольная сумма внешней компоненты или внешнего модуля | Hash | Число |
Локаль ИБ | Локаль ИБ | Locale | Строка |
Максимальный объем памяти | Максимальный объем памяти рабочих процессов | SafeWorkingProcessesMemoryLimit | Число |
Менеджер под каждый серви | Менеджер под каждый сервис | DedicateAll | Число |
Может использоваться как профиль безопасности безопасного режима | Может использоваться как профиль безопасности безопасного режима | SafeModeProfile | Булево |
Начало блокировки начала | Начало блокировки начала сеансов | DnFrom | Число |
Недоступные для расширения модули | Недоступные для расширения модули | ModulesNotAvailableForExtension | Строка |
Номер осн. порта | Номер основного IP порта процесса | port | Число |
Номер порта | Номер основного порта кластера серверов | cluster | Число |
Номер сеанса | Номер сеанса | sessionid | Число |
Номер соеднинения | Номер соединения с информационной базой | connection | Число |
Объект требования | Объект требования | ObjectType | Строка |
Объем памяти, до которого сервер считается производительным | Объем памяти, до которого сервер считается производительным | SoftRPMemoryLimit | Число |
Обязательно использование внешнего управления | Обязательно использование внешнего управления | ESMEn | Булево |
Описание исключения | Пояснения к программному исключению | descr | Строка |
ОС | Идентификатор операционной системы | System | Строка |
Отключены регламенты | Регламентные задания отключены | SchJobDn | Булево |
Параметр блокировки | Параметр блокировки начала сеансов | DnPrm | Строка |
Порт центрального сервера | Порт центрального сервера | CentralPort | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Принудительно завершать проблемные процессы | Принудительно завершать проблемные процессы | KillProblemProcesses | Число |
Принудительное применение | Принудительное применение требований назначения | Force | Булево |
Приоритет требования | Приоритет требования назначения функциональности | Priority | Число |
Протокол интернет-соединения | Протокол интернет-соединения | Protocol | Строка |
Профиль безопасности | Профиль безопасности ИБ | IbSePr | Строка |
Раздача лицензий | Включена ли раздача лицензий сервером | LicDstr | Булево |
Разрешен полный доступ к внешним компонентам | Разрешен полный доступ к внешним компонентам | AddInUseFullAccess | Булево |
Разрешен полный доступ к внешним отчетам и обработкам | Разрешен полный доступ к внешним отчетам и обработкам | UnsafeExternalModuleFullAccess | Булево |
Разрешен полный доступ к объектам COM | Разрешен полный доступ к объектам COM | ComUseFullAccess | Булево |
Разрешен полный доступ к привилегированному режиму | Разрешен полный доступ к привилегированному режиму | PrivilegedModeInSafeModeAllowed | Булево |
Разрешен полный доступ к приложениям ОС | Разрешен полный доступ к приложениям ОС | ExternalAppFullAccess | Булево |
Разрешен полный доступ к расширению всех модулей | Разрешен полный доступ к расширению всех модулей | AllModulesExtension | Булево |
Разрешен полный доступ к расширению прав доступа | Разрешен полный доступ к расширению прав доступа | RightExtension | Булево |
Разрешен полный доступ к ресурсам интернета | Разрешен полный доступ к ресурсам интернета | InternetUseFullAccess | Булево |
Разрешен полный доступ к файловой системе сервера | Разрешен полный доступ к файловой системе сервера | FileSystemFullAccess | Булево |
Разрешен полный доступ к функциям криптографии | Разрешен полный доступ к функциям криптографии | CryptographyAllowed | Булево |
Режим |