Это все диагностика
Технологический журнал платформы 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 | Булево |
Режим | Режим выполнения связанной функции | Mode | Число |
Режим распределения нагрузки | Режим распределения нагрузки (внутреннее представление) | LoadBalancingMode | Число |
Результат проверки файлов индекса полнотекстового поиска | Результат проверки файлов индекса полнотекстового поиска (1 - нет ошибок, 0 - есть ошибки) | Result | Число |
Роли, ограничивающие расширение прав доступа | Роли, ограничивающие расширение прав доступа | RightExtensionDefinitionRoles | Булево |
Сервер СУБД | Сервер СУБД | DBSrvr | Строка |
Сервис внешнего управлени | URL веб сервиса внешнего управления сеансами | ESMURL | Строка |
Смещение года | Смещение года | SQLYOffs | Число |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Сообщение при блокировке | Сообщение при блокировке начала сеансов | DnMsg | Строка |
Статус HTTP | Код состояния HTTP | Status | Строка |
СУБД | СУБД источника данных | dbms | Тип СУБД |
Тип требования назначения | Тип требования назначения функциональности (внутреннее представление) | RuleType | Строка |
Уникальный идентификатор | Уникальный идентификатор | UUID | Строка |
Уровень защищенного соединения | Уровень защищенного соединения (внутреннее представление) | SLev | Число |
Уровень отказоустойчивости | Уровень отказоустойчивости кластера (внутреннее представление) | FaultToleranceLevel | Число |
Уточнение требования | Уточнение требования назначения функциональности | ApplicationExt | Строка |
Физический путь | Физический путь | PhysicalPath | Строка |
Чтение разрешено | Чтение разрешено | AllowedRead | Булево |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Кластер и сервер | |||
Мониторинг кластера | Мониторинг состояния кластера | ATTN | |
id потока | id потока из-за которого прерывается процесс rphost | OSThread | Число |
ID процесса | Идентификатор процесса | pid | Число |
Адрес процесса агента | Адрес текущего процесса агента сервер системы "1С:Предприятие" | agentURL | Строка |
Адрес процесса сервера | Адрес процесса сервера системы "1С:Предприятие", к оторому относится событие | procURL | Строка |
Время активности удаленно | Время активности рабочего процесса, который удален из реестра, секунды | timeout | Строка |
Действие | Описание действия | action | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Идентификатор сеанса | Идентификатор (UUID) сеанса | SeanceID | Строка |
Имя события | Имя события | name | Строка |
Количество исключений за | Количество исключений в процессе, за 5 минут | CurExceptions | Число |
Количество попыток с ошиб | Количество попыток установки соединения с процессом, завершившихся ошибкой | Attempts | Число |
Компьютер | Имя компьютера | host | Строка |
Контекст | Контекст исполнения | context | Строка |
Максимальный размер памят | Максимальный размер памяти процесса, указанный в настройках кластера | MaxMemSize | Число |
наименование ограничения | наименование ограничения | LimitName | Строка |
Объем памяти процесса | Объем памяти, занимаемой процессом, байт | memsize | Число |
Описание исключения | Пояснения к программному исключению | descr | Строка |
Причина события | Причина события | Cause | Строка |
Среднее количество исключ | Среднее количество исключений за 5 минут, по другим процессам | AvgExceptions | Число |
Тип сообщения ATTN | Тип сообщения ATTN | Type | Тип сообщения |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Кластер и сервер | |||
Процесс | Событие, относящееся к процессу целиком и влияющие на дальнейшую работоспособность процесса. Например: старт, завершение, аварийное завершение и т. п. | PROC | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер вспом. порта | Номер вспомогательного IP порта процесса | syncport | Число |
Номер осн. порта | Номер основного IP порта процесса | port | Число |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Причина завершения | Причина завершения процесса | finish | Строка |
Режим запуска | Режим запуска процесса, приложение или сервис | runas | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Текст сообщения | Текст информационного сообщения | txt | Строка |
Тип сообщения | Тип консольного сообщения: информационное или об ошибке | err | Булево |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Кластер и сервер | |||
Сеанс | Действие, относящиеся к сеансу работы. Например: начало сеанса, окончание сеанса и т. д. | SESN | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя ИБ | Имя информационной базы в клиент-серверном варианте | ib | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | nmb | Число |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Кластер и сервер | |||
Сервисы кластера | События, связанные с запуском, остановкой и оповещениями сервисов кластера серверов | SRVC | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Описание исключения | Пояснения к программному исключению | descr | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Кластер и сервер | |||
Соединение с сервером | Установка или разрыв TCP-соединения между процессами системы «1С:Предприятие» | CONN | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Вызовы | Количество обращений клиентского приложения к серверному приложению через TCP | calls | Число |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Текст сообщения | Текст информационного сообщения | txt | Строка |
Кратко рассмотрим каждое событие.
ADMIN - это события, связанные с действиями администратора. Если администратор удаляет сеанс через консоль администрирования или через другие средства управления, то информация об этом действии добавится в ТЖ. Вот так выглядит событие удаления сеанса для приложения ragent.
28:37.562001-0,ADMIN,2,process=ragent,p:processName=##AdminProcess##,OSThread=8496,t:clientID=81,t:applicationName=SrvrConsole,t:computerName=YY-COMP,Func=eraseSeance,ClusterID=6c653931-9314-4d9d-8ad5-bae26614268d,InfoBaseID=a9641b9f-cda7-4bcb-8a8d-cccbf1394029,SeanceID=d15f32c8-91ad-4df1-a37c-bb5e24282458,Cluster=1541,Ref=MyTempDbHost,Val=19,Administrator=,Result=Success
ATTN - события мониторинга кластера. Все что связано с его работой и может повлиять на его работоспособность. Например, если указано время перезапуска процессов и момент рестарта наступает, то информация о последующем "убийстве" этого процесса будет зафиксирована в ТЖ в логах процесса ragent.
32:27.579012-0,ATTN,1,process=ragent,OSThread=24392,Descr=Process is abandoned,agentURL=tcp://YY-COMP:1540,procURL=tcp://YY-COMP:1560,Pid=14048,Name=rphost
PROC - позволяет отслеживать состояния и действия с рабочими процессами. Например, в логах процесса ragent можно встретить записи старта рабочих процессов.
31:23.537021-1,PROC,1,process=ragent,OSThread=11648,Txt='Run process. Prog=C:\Program Files\1cv8\8.3.17.1496\bin\rphost.exe, Command=("C:\Program Files\1cv8\8.3.17.1496\bin\rphost.exe" -range 1560:1591 -reghost YY-COMP -regport 1541 -pid 07b190ba-eaf3-4765-90f5-9b4be2132299 -debug -tcp -fromsrvc), success, pid=24096'
SESN - аналогичный PROC мониторинг, но уже для сеансов. Отслеживает все основные действия, происходящие с сеансами. Вот так, например, выглядит старт нового сеанса для фонового задания.
38:06.547025-50452880,SESN,2,process=rmngr,OSThread=14112,t:clientID=159,t:applicationName=ServerProcess,t:computerName=YY-COMP,Func=Finish,IB=MyTempDbHost,Appl=BackgroundJob,Nmb=17,ID=329e204c-55ff-4132-9d66-a04a31919294
SRVC - событие связано с работой сервисов кластера. Платформа 1С - не монолит. Составные части кластера нужно как-то мониторить. Именно для этого предназначено данное событие. События находятся в файле с логами процесса rmngr. Вот пример события о сервисе журнала регистрации.
22:52.064026-0,SRVC,2,process=rmngr,OSThread=8804,t:clientID=125,t:applicationName=Notification,t:computerName=YY-COMP,Descr='EventLogService: service notified,onBeginTransaction(infoBaseID=a9641b9f-cda7-4bcb-8a8d-cccbf1394029, connectID=10, seanceID=ef511793-2882-4697-9205-def5df747cd3)'
CONN - все события о соединениях между процессами платформы 1С. Наверное, одно из самых распространенных событий. Вот, например, событие проверки пинга одного из ресурсов.
22:28.503000-0,CONN,0,process=ragent,OSThread=9460,Txt='Ping direction statistics: address=[fe80::4833:ae64:eeb:a885%2]:1560,pingTimeout=5000,pingPeriod=1000,period=10250,packetsSent=10,avgResponseTime=0,maxResponseTime=0,packetsTimedOut=0,packetsLost=1,packetsLostAndFound=1'
Все эти события можно собирать на постоянной основе для мониторинга состояния кластера и сервера 1С.
С помощью событий CALL, SCALL и SCOM технологический журнал позволяет анализировать поведение платформы, взаимодействие клиентского приложения с сервером и некоторые другие аспекты работы приложения в части взаимодействия процессов между собой.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Диагностика вызовов и контекста | |||
Входящий вызов | Входящий удаленный вызов (удаленный вызов на стороне приемника вызова) | CALL | |
HTTP метод | HTTP метод обращения к ресурсу | method | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Записано на диск | Объем данных, записанных на диск за сеанс, байт | outbytes | Число |
Имя вызываемого метода | Имя удаленно вызываемого метода | MName | Строка |
Имя интерфейса | Имя передаваемого интерфейса, метод которого вызывается удаленно | iname | Строка |
Имя объекта метаданных | Имя объекта метаданных, для которого выполняется ввод по строке | findbystring | Строка |
Имя отчета | Имя объекта метаданных отчета, выполняемого в фоновом режиме | Report | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Исключение как результат | Иключение, возникшее при выполнении вызова сервера, и передаваемое клиенту в качестве результата вызова. | RetExcp | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Память, занятая, не освобожденная | Объем памяти в байтах, занятой, но не освобожденной за время серверного вызова | memory | Число |
Память, занятая, не освобожденная | Пиковое значения объема памяти в байтах, занятой, но не освобожденной за время серверного вызова | memorypeak | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Процессорное время | Процессорное время | CpuTime | Число |
Сервис интеграции | Полное имя сервиса интеграции | IntegrationService | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Считано с диска | Объем данных, считанных с диска за сеанс, байт | inbytes | Число |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Диагностика вызовов и контекста | |||
Исходящий вызов | Исходящий удаленный вызов (исходящий вызов на стороне источника вызова). | SCALL | |
HTTP метод | HTTP метод обращения к ресурсу | method | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя вызываемого метода | Имя удаленно вызываемого метода | MName | Строка |
Имя интерфейса | Имя передаваемого интерфейса, метод которого вызывается удаленно | iname | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Диагностика вызовов и контекста | |||
Серверный контекст | Событие создания или удаления серверного контекста, обычно связанного с информационной базой. | SCOM | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | processname | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Старое имя | Имя среды сервера на момент ее создания. Обычно определяет разделяемые данные информационной базы | srcprocessname | Строка |
Рассмотрим пример как генерируются эти события при выполнении кода встроенного языка. Допустим, есть такой код.
&НаКлиенте
Процедура ВызовСервера(Команда)
Результат = ВызовСервераНаСервере();
Сообщить(Результат);
КонецПроцедуры
&НаСервере
Функция ВызовСервераНаСервере()
Возврат Формат(ТекущаяДатаСеанса(), "ДЛФ=DDT");
КонецФункции
Когда мы вызываем клиентскую процедуру из нее выполняется вызов серверной функции и выводиться некий результат в виде сообщения. Отбросив множество служебных событий, в общем случае в технологическом журнале будут зафиксированы такие события. На клиенте это отправка исходящего вызова.
08:11.966000-15995,SCALL,4,process=1CV8C,OSThread=16492,ClientID=22,Interface=bc15bd01-10bf-413c-a856-ddc907fcd123,IName=IVResourceRemoteConnection,Method=0,CallID=23994,MName=send,DstClientID=9,Context='
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 11 : Результат = ВызовСервераНаСервере();'
В этом событии мы видим свойство CallID равное 23994 - это идентификатор вызова. Идем на сервер, а там в логах такая информация.
08:11.954004-16003,CALL,2,process=rphost,p:processName=MyTempDbHost,OSThread=20384,t:clientID=9,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=25,callWait=0,first=true,Usr=DefUser,SessionID=5,Context=Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВызовСервераНаСервере,Interface=bc15bd01-10bf-413c-a856-ddc907fcd123,IName=IVResourceRemoteConnection,Method=0,CallID=23994,MName=send,Memory=88594,MemoryPeak=1038217,InBytes=3461,OutBytes=0,CpuTime=0
Сопоставили мы записи именно по свойству CallID. Из полученных данных можно определить контекст выполнения вызовов, размер передаваемых данных, информацию о процессах и многое другое. Все это может помочь в расследовании клиент-серверного взаимодействия приложений, найти причину замедления работы, узнать, где передаются излишние объемы данных и так далее. В общем, исследование вызовов может открыть много тайн :)
Событие SCOM относится к созданию серверного контекста. В ТЖ можно увидеть такие записи:
07:20.704037-0,SCOM,2,process=rphost,OSThread=3896,Func='setSrcProcessName(RHostRoot,RHostRoot)'
07:21.938001-0,SCOM,3,process=rphost,OSThread=876,t:clientID=6,t:applicationName=JobScheduler,Func='setSrcProcessName(ServerJobExecutorContext,ServerJobExecutorContext)'
07:22.251001-0,SCOM,3,process=rphost,OSThread=9384,t:clientID=7,Func='setSrcProcessName(MyTempDbHost,MyTempDbHost)'
Все они показывают инициализацию серверного контекста в той или иной ситуации. Может использоваться для диагностики каких-либо проблем совместно с другими событиями.
Технологический журнал позволяет также собирать информацию о клиентских запросах к ресурсам сервера и ответах на них, а также о клиентском кэше этих запросов. Эти события не стоит путать CALL и SCALL, т.к. назначение у них совершенно разные. Всего доступны три вида событий:
- VRSREQUEST - Запрос к серверу за некоторым ресурсом
- VRSRESPONSE - Ответ сервера
- VRSCACHE - Работа кеша серверных вызовов
Ниже представлен состав каждого из событий.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Диагностика вызовов к серверу | |||
Запрос к серверу | Запрос к серверу за некоторым ресурсом | VRSREQUEST | |
HTTP заголовок | HTTP-заголовок запроса/ответа | headers | Строка |
HTTP метод | HTTP метод обращения к ресурсу | method | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Размер запроса | Размера тела запроса/ответа (в байтах) | body | Число |
Ресурс | Ресурс, к которому производится обращение | uri | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Текст запроса/ответа | Полное содержимое запроса и ответа, в том случае, если MIME-тип равен значению application/xml или application/json | bodyText | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Диагностика вызовов к серверу | |||
Ответ сервера | Ответ сервера | VRSRESPONSE | |
HTTP заголовок | HTTP-заголовок запроса/ответа | headers | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Код состояния | Текстовая фраза, соответствующая коду состояния | phrase | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Размер запроса | Размера тела запроса/ответа (в байтах) | body | Число |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Статус HTTP | Код состояния HTTP | Status | Строка |
Текст запроса/ответа | Полное содержимое запроса и ответа, в том случае, если MIME-тип равен значению application/xml или application/json | bodyText | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Диагностика вызовов к серверу | |||
Кеш HTTP | Работа кеша серверных вызовов | VRSCACHE | |
HTTP метод | HTTP метод обращения к ресурсу | method | Строка |
SQL-запрос | Текст оператора SQL | sql | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Возьмем тот же код, что и в предыдущем примере:
&НаКлиенте
Процедура ВызовСервера(Команда)
Результат = ВызовСервераНаСервере();
Сообщить(Результат);
КонецПроцедуры
&НаСервере
Функция ВызовСервераНаСервере()
Возврат Формат(ТекущаяДатаСеанса(), "ДЛФ=DDT");
КонецФункции
После выполнения получим следующую серию событий в логах.
Сначала получаем событие исходящего запроса.
45:52.689004-0,VRSREQUEST,4,process=1CV8C,OSThread=16492,Method=POST,URI='/e1cib/logForm?cmd=call',Headers='1C-BaseLocation: e1c://server/localhost/MyTempDbHost
User-Agent: 1CV8C
Content-Type: application/xml; charset=utf-8
Content-Length: 819
1C-ApplicationName: 1CV8C
vrs-session: f0673d3f-77ad-451a-a3d2-76113828a82d
Accept-Encoding: deflate,1CSDC;q=0.5
Accept-Language: ru
1C-ConnectString: Srvr="localhost";Ref="MyTempDbHost";
Accept: application/xml
Pragma: sync=14
Content-Encoding: deflate',Body=819,Context='
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 11 : Результат = ВызовСервераНаСервере();'
И после получаем ответ.
45:52.705001-0,VRSRESPONSE,4,process=1CV8C,OSThread=16492,Status=200,Phrase=OK,Headers='Server: 1C:Enterprise/8.3.17.1496
Content-Encoding: deflate
Content-Language: ru
Content-Type: application/xml; charset=utf-8
Content-Length: 625',Body=625,Context='
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 11 : Результат = ВызовСервераНаСервере();'
На сервере события в какой-то степени дублируются с клиентским журналом. Событие входящего запроса.
45:52.690011-0,VRSREQUEST,4,process=rphost,p:processName=MyTempDbHost,OSThread=12056,t:clientID=10,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=35,Method=POST,URI='/e1cib/logForm?cmd=call',Headers='1C-BaseLocation: e1c://server/localhost/MyTempDbHost
User-Agent: 1CV8C
Content-Length: 819
1C-ApplicationName: 1CV8C
Content-Type: application/xml; charset=utf-8
Accept-Encoding: deflate,1CSDC;q=0.5
vrs-session: f0673d3f-77ad-451a-a3d2-76113828a82d
Accept-Language: ru
1C-ConnectString: Srvr="localhost";Ref="MyTempDbHost";
Accept: application/xml
Pragma: sync=14
Content-Encoding: deflate',Body=819
И ответа.
45:52.706009-0,VRSRESPONSE,4,process=rphost,p:processName=MyTempDbHost,OSThread=12056,t:clientID=10,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=35,Status=200,Phrase=OK,Headers='Content-Encoding: deflate
Server: 1C:Enterprise/8.3.17.1496
Content-Language: ru
Content-Length: 625
Content-Type: application/xml; charset=utf-8',Body=625
События на клиенте и на сервере похожи, но в некоторых случаях на клиенте есть информация о контексте. Таким образом, события VRSREQUEST и VRSRESPONSE позволяют получать дополнительную информацию о взаимодействии клиентских приложений с сервером. Полезной информации много. Плюс ко всему есть событие VRSCACHE, которое дает возможность анализировать работу с клиентским кэшем. Что такое клиентский кэш? Это служебная файловая база, которая обычно хранится в служебном каталоге пользователя:
%AppData%\Local\1C\1cv8\<Идентификатор информационной базы на клиенте>
Внутри этого каталога есть кэш конфигурации, кэш запросов к ресурсам и т.д. Нас интересует кэш работы с ресурсами, которых находится в подчиненном каталоге с именем в виде идентификатора, например "a3dafdcd-8d6d-4544-92ec-0b7f2097d769". В этом каталоге есть еще один вложенный каталог "vrs-cache" с файловой базой кэша запросов. Если откроем ее с помощью легендарной утилиты Tool1CD, то увидим такую структуру:
База содержим две таблицы. В таблице CACHE2 содержит как раз кэшируемые данные. Это и некоторые графические ресурсы, служебные данные, клиентские общие модули и др. Если мы посмотрим на событие VRSCACHE в ТЖ, то увидим как клиентское приложение получает данные из кэша.
04:20.979012-1,VRSCACHE,4,process=1CV8C,OSThread=5472,Sql="
SELECT Hash,
ConfVer,
Resource,
Method,
Type,
Charset,
Language,
StatusCode,
ETag,
DateHeader,
Expires,
LastModified,
Headers,
BodySize,
Body,
BodyURL,
UpdateCount,
LastUpdated,
MustRevalidate
FROM Cache2
WHERE Hash = 0x2CF3AF71
AND Resource = '/e1cib/types?sysver=8.3.17.1496&types=fef9c279d12c4205e2952066c3a0049e'
AND Type = 'application/xml'
AND Charset = 'utf-8'"
Из той самой таблицы CACHE2 платформа получает значение кэшированного ресурса с учетом хеша значения, адреса ресурса (в котором используется версия платформы), типа данных и кодировки. Если что-то из этого изменится, то кэш станет неконсистентным и значение будет получено вновь с сервера, а кэш в базе будет обновлен.
Таким образом, события VRSREQUEST, VRSRESPONSE, VRSCACHE позволяют исследовать и диагностировать взаимодействие клиентских приложений с сервером, а также разбирать вопросы работы клиентского кэша.
Когда возникают вопросы к лицензированию, то в помощь приходят события HASP и LIC (появилось с версии 8.3.10).
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Лицензирование | |||
Обращение к HASP | Обращение к аппаратному ключу защиты (HASP) | HASP | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Текст сообщения | Текст информационного сообщения | txt | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Лицензирование | |||
Система лицензирования | События, связанные с получением и освобождением лицензий (как программных, так и ключей HASP), получением лицензий на базовые версии, регулярным мониторингом соответствия реального оборудования и списка оборудования, зафиксированного в лицензии | LIC | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Состояние лицензии | Переиспользована ранее занятая лицензия или занята новая | res | События работы с лицензиями |
Текст сообщения | Текст информационного сообщения | txt | Строка |
HASP - позволяет анализировать работу только технологических аспектов с ключами HASP (внезапно!).
LIC - позволяет анализировать также получение и освобождение лицензий (как программных, так и HASP), получение лицензий базовых версий, а также получать информацию об оборудовании для лицензии. Вот, например. пара таких событий в ТЖ:
38:32.447003-0,HASP,2,process=1CV8C,OSThread=8132,Txt='Computer parameters from cache:
OS_0: Майкрософт Windows 10 Pro
OS Ver_0: 10.0.19041, 19041
OS Ser_0: 00330-80000-00000-AA565
OS Inst Date_0: 20200616214653.000000+300
Sys Name_0: YY-COMP
Sys Type_0: Z390 AORUS ULTRA, x64-based PC
Phis Mem_0: 68573495296
BIOS_0: American Megatrends Inc., 20181204000000.000000+000, F6, 3, 1
CPU_0: CPU0, Intel64 Family 6 Model 158 Stepping 12, 64, 64, 2048, 3600, BFEBFBFF000906EC, U3E1
...
...
...
'
38:32.447001-1,LIC,1,process=1CV8C,OSThread=8132,Func=initialize,txt='local Application, hasp HL SOFT local, ORGL8 local net, ORG8A local net, ORG8B local netBase local net'
В общем, процесс диагностики подсистемы лицензирования теперь проще, чем раньше :)
Для диагностики работы платформы 1С с индексом полнотекстового поиска были добавлены события FTEXTUpd и FTEXTCheck в технологический журнал начиная с версии 8.3.6. Событие FTEXTSkip добавлено в 8.3.8.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Полнотекстовый поиск | |||
Обновление индекса ПП | Возникает во время обновления файлов индекса полнотекстового поиска | FTEXTUpd | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Время вывода | Время вывода записи в технологический журнал | Time | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Доступная память | Доступная память во время выполнения функции | AvMem | Число |
Идентификатор индексируем | Минимальный идентификатор индексируемых данных в порции, которая прошла от менеджера кластера в рабочий процесс и обратно | minDataId | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Каталог | Каталог | Folder | Строка |
Количество файлов | Количество файлов в папке | FilesCount | Число |
Количество фоновых процессов индексации | Количество фоновых процессов индексации, которые завершились с ошибками | FailedJobsCount | Число |
Количество фоновых процессов создано | Количество фоновых процессов, которое было создано во время индексации | TotalJobsCount | Число |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Максимальный размер испол | Максимальный размер динамической памяти, который был использован во время вызова | MemoryUsed | Число |
Номер сеанса | Номер сеанса | sessionid | Число |
Перечень файлов | Список пар "файл ... размер" в каталоге (в виде текста) | Files | Строка |
Полнотекстовый поиск в фо | Формирование индекса полнотекстового поиска выполнялось в фоновом процессе (true) или нет (false) | BackgroundJobCreated | Булево |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Статус операции | Фиксируется начало или завершение операции обновления индекса полнотекстового поиска | State | Состояния обновления индекса ППД |
Суммарный объем файлов | Суммарный объем файлов в папке | FilesTotalSize | Число |
Фоновый процесс отменен п | Признак того, что фоновый процесс индексации было отменен, т. к. был достигнут предел загрузки рабочего процесса | JobCanceledByLoadLimit | Булево |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Полнотекстовый поиск | |||
Корректность индекса ПП | Возникает при проверке файлов индекса полнотекстового поиска | FTEXTCheck | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Индекс области разделения | Индекс области разделения (если разделение включено) | SepId | Строка |
Информация о сбое | Информация о сбое | Info | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Результат проверки файлов индекса полнотекстового поиска | Результат проверки файлов индекса полнотекстового поиска (1 - нет ошибок, 0 - есть ошибки) | Result | Число |
Слово | Слово (если определено) | Word | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Состояние разделения | Включено или нет разделение | Separation | Строка |
Файл с проблемой | Имя файла в котором обнаружена проблема | File | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Полнотекстовый поиск | |||
Неиндексируемые объекты | Информация о тех данных, которые не индексируются полнотекстовым поиском | FTEXTSkip | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Навигационная ссылка | Навигационная ссылка на объект, данные из которого не обрабатываются при индексировании полнотекстового поиска | URL | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Объем данных | Объем данных, которые не индексировались при индексировании полнотекстового поиска, в байтах | Size | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Реквизит объекта | Реквизит объекта, данные из которого не обрабатываются при индексировании полнотекстового поиска | Attribute | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Все они были добавлены в рамках улучшения механизмов работы полнотекстового поиска. Часть информации об этом можно найти в предыдущих публикациях:
Событие FTEXTCheck возникает при вызове системной функции "ПроверитьИндекс()", а FTEXTUpd во время стандартных процедур обновления файлов индекса. Событие FTEXTSkip сигнализирует о том, что размер индексируемых данных очень большой (лимит устанавливается в настройках) и объект будет пропущен. В целом этот набор событий позволяет находить основные проблемы индекса ППД заблаговременно, но, конечно, хотелось бы больше средств диагностики.
Сеансовые данные - неотъемлемая часть работы клиент-серверного варианта платформы 1С. В них система хранит различные данные как служебные, так и те, что разработчик поместил туда явно. На высоконагруженных системах сеансовые данные могут стать узким местом производительности и стабильности. Их неконтролируемый рост может съесть все свободное пространство и "уронить" всю работу. На сайте ИТС есть хорошая статья по этому поводу: Анализ причин роста сеансовых данных.
Для упрощения диагностики роста сеансовых данных было добавлено событие SDGC начиная с версии 8.3.16. В событии для процесса rmngr есть информация о размере сеансовых данных, времени их блокировке, сколько использовано в файлах сеансовых данных и др.
38:34.550000-32000,SDGC,0,process=rmngr,OSThread=4600,InstanceID=328bba0,UsedSize=16657737,FilesSize=59728374,Method=Analyze,LockDuration=32
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Сеансовые данные | |||
Очистка сеансовых данных | Фиксирует срабатывание механизма очистки сеансовых данных | SDGC | |
HTTP метод | HTTP метод обращения к ресурсу | method | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
длительность блокировки х | длительность блокировки хранилища за период работы сборщика мусора | LockDuration | Число |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
идентификатор хранилища | уникальный идентификатор хранилища | InstanceID | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
общий размер скопированны | общий размер скопированных значений при сборке мусора | CopyBytes | Число |
общий размер хранилища | общий размер хранилища | FilesSize | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
размер используемого мест | размер используемого места в хранилище | UsedSize | Число |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Очень полезное событие для расследования подобных проблем.
Утечки памяти - одна из самых неприятных проблем, которые могут возникать в ходе разработки и сопровождения, а также из-за ошибок самой платформы 1С. Вся сложность возникает при поиске причин их возникновения, т.к. в сложных случаях это весьма не тривиальный процесс. Для решения подобных проблем в технологический журнал были добавлены события LEAKS и MEM.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Утечки памяти | |||
Утечка памяти | Событие, связанное с утечкой памяти, которая может быть вызвана ошибками в коде конфигурации | LEAKS | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Описание исключения | Пояснения к программному исключению | descr | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Утечки памяти | |||
Утечка памяти сервера | Событие, связанные с увеличением объема памяти, занятой серверными процессами (ragent, rmngr, rphost). | MEM | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Занятая память | Количество занятых процессом фрагментов динамической памяти на момент вывода данного события | cn | Число |
Занятая память (изменение | Изменение количества занятых процессом фрагментов динамической памяти с момента вывода предыдущего события MEM | cnd | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Память процесса | Объем занятой процессом динамической памяти в байтах на момент вывода данного события | sz | Число |
Память процесса (изменение) | Изменение объема занятой процессом динамической памяти в байтах с момента вывода предыдущего события MEM | szd | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Сами эти события не показывают причину проблемы, а лишь позволяют найти информацию, когда и как изменялось использование памяти, динамику изменения. А вот поиск причин уже зависит от от конкретной ситуации и требует усилий. Вот, например, несколько ссылок по этой теме:
Также есть материалы на официальном сайте. В любом случае, тема утечек памяти большая и универсальных решений нет.
Специфичные возможности
Очень специфичные события технологического журнала.
Начиная с платформы 8.3.7 было добавлено событие CONFLOADFROMFILES для диагностики ошибок загрузки конфигурации из файлов.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Работа с конфигурациями | |||
Загрузка конфигурации из файлов | Выполнение событий, связанных с загрузкой конфигурации из файлов | CONFLOADFROMFILES | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Действие | Описание действия | action | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Уровень события | Уровень важности события | Level | Уровень важности события |
На практике еще ни разу не приходилось использовать.
С версии 8.3.11 добавлен функционал истории данных. Теперь отслеживать версии объектов можно средствами платформы. Для диагностики новой функциональности добавлено событие DHIST для ТЖ.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
История данных | |||
История данных | Событие, связанное с обновлением истории данных. | DHIST | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Описание обновления | Пояснение, что выполняется обновление истории данных | description | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
До сих пор скептически отношусь к новому механизму. На практике практически не использовал.
С версии 8.3.8 сделаны значительные изменения в механизме ввода по строке для использования полнотекстового поиска. Для диагностики изменений добавлено событие INPUTBYSTRING.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Интерактивные действия | |||
Ввод по строке | Выполнение операций ввода по строке | INPUTBYSTRING | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Введенный текст | Текст, введенный при вводе по строке | Text | Строка |
Время поиска по БД | Время (мсек), потраченное на поиск в базе данных | findTicks | Число |
Время полнотекстового пои | Время (мсек), потраченное на полнотекстовый поиск | ftextTicks | Число |
Вызовов полнотекстового п | Количество вызовов полнотекстового поиска | ftextSearchCount | Число |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Используется поиск в БД | If true - the search in database is used, full text-search results are not included | SearchByMask | Булево |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Найдено ссылок | Количество ссылок, найденных при полнотекстовом поиске | ftextResultCount | Число |
Не используется полнотекстовый поиск | If true - index contains too many references that meet query conditions, the full-text search is not used | tooManyResults | Булево |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Может быть полезен для проверки работает ли у пользователей полнотекстовый поиск для ввода по строке. Использует ли платформа возможности СУБД для поиска. По факту все равно используется очень редко.
События MACCERT и WINCERT предназначены для диагностики ошибок при работе с сертификатами на операционных системах Windows и MAC OS соответственно. Вот составы этих событий.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Сертификаты | |||
Описание сертификата (OS X) | Ошибки, связанные с проверкой сертификата средствами ОС X. Такие события могут помочь специалистам в расследовании причин некорректной проверки сертификатов. | MACCERT | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Код ошибки | Код ошибки, который вернул метод работы с сертификатами Windows API (для события WINCERT) или Security API (для события MACCERT). | errorCode | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Описание исключения | Пояснения к программному исключению | descr | Строка |
Описание сертификата | Описание сертификата, который используется при проверке сертификата издателя в хранилище сертификатов ОС Windows. Включает поля сертификата: субъект (subject), издатель (issuer), серийный номер (sn). | certificate | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Сертификаты | |||
Описание сертификата (Windows) | Ошибки, связанные с проверкой сертификата средствами ОС Windows. Такие события могут помочь специалистам в расследовании причин некорректной проверки сертификатов | WINCERT | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Код ошибки | Код ошибки, который вернул метод работы с сертификатами Windows API (для события WINCERT) или Security API (для события MACCERT). | errorCode | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Описание исключения | Пояснения к программному исключению | descr | Строка |
Описание сертификата | Описание сертификата, который используется при проверке сертификата издателя в хранилище сертификатов ОС Windows. Включает поля сертификата: субъект (subject), издатель (issuer), серийный номер (sn). | certificate | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Практически не приходилось использовать. А Вам?
В платформе 8.3.17 реализован функционал сервисов интеграции. Никогда с ним не сталкивался и честно признаюсь, что не знаю для чего он. Но, весьма вероятно, для его диагностики добавили событие SINTEG.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Сервисы интеграции | |||
Сервис интеграции | События, связанные с работой внешнего сервиса интеграции | SINTEG | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Адрес внешнего сервиса ин | Адрес внешнего сервиса интеграции | ExtSrvcURL | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Ид сообщения сервиса инте | Ид сообщения сервиса интеграции | MessageId | Строка |
Имя объекта метаданных ка | Имя объекта метаданных канала сервиса интеграции в который добавляется сообщение | ChannelName | Строка |
Имя объекта метаданных се | Имя объекта метаданных сервиса интеграции для которого выполняется подключение к внешнему сервису интеграции | SrvcName | Строка |
Имя пользователя внешнего | Имя пользователя внешнего сервиса интеграции | ExtSrvcUsr | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Размер в байтах тела сооб | Размер в байтах тела сообщения | BodySize | Число |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Что это и зачем - узнаем в будущем. Может кто-то напишет публикацию об этом.
Мы уже говорили про внешние источники данных ранее. Именно для диагностики их работы добавлено событие EDS.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Внешние источники данных | |||
Внешний источник данных | События, связанные с внешними источниками данных | EDS | |
ID СУБД | Идентификатор соединения с СУБД внешнего источника данных | dbconnid | Строка |
MDX-запрос | Текст MDX-запроса к OLAP системе | MDX | Строка |
SQL-запрос | Текст оператора SQL | sql | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Изменено записей | Количество измененных записей базы данных | rowsaffected | Число |
Имя исключения | Наименование программного исключения | exception | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Описание исключения | Пояснения к программному исключению | descr | Строка |
План запроса | План выполненного SQL запроса, построенный сервером баз данных (текст запроса расположен в свойстве "SQL") | planSQLText | Строка |
Получено записей | Количество полученных записей базы данных | rows | Число |
Пользователь СУБД | Имя пользователя СУБД внешнего источника данных | dbusr | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Строка соединения | Строка соединения с внешним источником данных | dbconnstr | Строка |
СУБД | СУБД источника данных | dbms | Тип СУБД |
Чем-то это событие походит на другие события диагностики работы с СУБД, но со своей спецификой. Как и внешние источники данных, использовать его при сборе логов приходилось всего пару раз.
С версии 8.3.14 стал доступен механизм копий баз данных. Событие DBCOPIES предназначен для его диагностики. К сожалению, не сталкивался с этим функционалом, поэтому добавить нечего.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Механизм копий баз данных | |||
Копирование, заполнение БД | Копирование, заполнение БД | DBCOPIES | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
блоки, оставшиеся с прошл | блоки, оставшиеся с прошлого запуска первоначального копирования | UnfinishedBlocks | Число |
в процессе выполнения зад | в процессе выполнения заданий первоначального копирования произошла ошибка в одном из заданий | SomeJobFailed | Булево |
внутренний ключ задания п | внутренний ключ задания первоначального копирования | Key | Строка |
Действия | Наименование выполняемого действия | func | Выполняемое действие |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
идентификатор копии | идентификатор копии | CopyId | Строка |
имя базы данных копии | имя базы данных копии | DbName | Строка |
имя копии | имя копии | CopyName | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
имя таблицы (используется | имя таблицы (используется при обновлении) | TableName | Строка |
ключи первой записи копир | ключи первой записи копируемого блока | FirstKey | Строка |
ключи первой записи порци | ключи первой записи порции копируемого блока | FirstPortionKey | Строка |
ключи последней записи ко | ключи последней записи копируемого блока | LastKey | Строка |
количество заданий первон | количество заданий первоначального копирования | JobsCount | Число |
количество записей следую | количество записей следующей порции | RowsCount | Число |
количество операторов в о | количество операторов в объекте изменения | OpCount | Число |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
номер копируемого блока | номер копируемого блока (номера блоков) | BlockNum | Число |
Номер сеанса | Номер сеанса | sessionid | Число |
номер транзакции | номер транзакции | TrNum | Число |
первый запуск задания | первый запуск задания | FirstFillLaunch | Булево |
пользователь базы данных | пользователь базы данных копии | DbUser | Строка |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
процесс первоначального к | процесс первоначального копирования запущен для таблицы копии впервые | FirstRun | Булево |
сервер СУБД копии | сервер СУБД копии | DbServer | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
создавать базу данных в с | создавать базу данных в случае отсутствия | CreateDb | Булево |
таблица пустая (используе | таблица пустая (используется при обновлении) | TableEmpty | Булево |
Тип репликации | Тип репликации | ReplicationType | Строка |
тип СУБД копии | тип СУБД копии | DbType | Тип СУБД |
тип таблицы в объекте изм | тип таблицы в объекте изменения | TableType | Строка |
Если у Вас есть опыт с этим - комментарии ждут Вас!
Событие MAILPARSEERR используется для анализа ошибок разбора почтовых сообщений. На практике еще не встречал появление этих событий или ошибок. Стало доступно начиная с платформы 8.3.6.
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Электронная почта | |||
Ошибка разбора почтового сообщения | Событие, формируемое в том случае, если во время разбора почтового сообщения возникла ошибка. | MAILPARSEERR | |
HTTP метод | HTTP метод обращения к ресурсу | method | Строка |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Идентификатор письма | Идентификатор электронного письма, во время обработки которого произошла ошибка | MessageUid | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Если у Вас есть опыт работы с этим событиям - поделитесь в комментариях.
Этот вид событий предназначен для анализа работы платформы 1С и ее компонентов сотрудниками фирмы "1С". Вы можете попытаться собрать их самостоятельно :)
Категория события | |||
Событие | Описание | Служебное имя | |
Свойство | Описание свойства | Служебное имя свойства | Тип значения свойства |
Системные | |||
Системные события | Системные события механизмов платформы, предназначенные для анализа сотрудниками фирмы "1С" | SYSTEM | |
TCP соединение | Номер TCP соединения между процессами системы «1С:Предприятие» | t_clientid | Строка |
Длительность события в сотнях микросекунд | Длительность события в сотнях микросекунд | duration | Число |
Длительность события, мкс | Длительность события в микросекундах | durationus | Число |
Имя класса | Имя класса, в рамках которого было сгенерировано событие | Class | Строка |
Имя компоненты | Имя компоненты платформы, которой принадлежит класс, в рамках которого сгенерировано событие | Component | Строка |
Имя пользователя ИБ | Имя пользователя информационной базы | usr | Строка |
Имя процесса | Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения) | Process | Строка |
Имя серв. контекста | Имя серверного контекста, который обычно совпадает с именем информационной базы | p_processname | Строка |
Имя события | Имя события | name | Строка |
Компьютер соединения | Имя компьютера процесса, установившего соединение | t_computername | Строка |
Контекст | Контекст исполнения | context | Строка |
Номер сеанса | Номер сеанса | sessionid | Число |
Приложение соединения | Идентификатор приложения, установившего соединение | t_applicationname | Строка |
Соединение с ИБ | Номер соединения с информационной базой | t_connectid | Строка |
Уровень события | Уровень важности события | Level | Уровень важности события |
Файл с проблемой | Имя файла в котором обнаружена проблема | File | Строка |
На практике очень редко приходится что-то с этим делать.
О чем не сказано
Мы рассмотрели основное назначение событий и их состав, некоторые настройки ТЖ для их сбора, а также некоторые примеры, когда эти события возникают. Но это далеко не полное раскрытие темы, ведь еще есть вопросы к настройке ТЖ и анализа собранных логов. По этой теме оставил ссылки как в начале публикации, так и в конце.
Еще есть множество нюансов в данных формируемых событий, влияние ТЖ на производительность, быстрые способы его парсинга и обработки и много, много еще чего.
Сейчас в свободное время постепенно дорабатываю библиотеки экспорта журнала регистрации во внешние хранилища:
- YY.EventLogReaderAssistant - библиотека для чтения файлов журнала регистрации платформы 1С:Предприятие 8.x
- YY.EventLogExportAssistant - библиотека для экспорта данных журнала регистрации платформы 1С:Предприятие 8.x
- Экспорт журнала регистрации. Набор инструментов (приложения + исходный код)
Также есть подобная разработка и для технологического журнала, но до публикации она еще не дошла и находится в стадии тестирования. Плюс она будет дополняться разработкой на базе 1С с более продвинутым способом настройки технологического журнала с учетом типа полей событий, версии платформы 1С, формировании нескольких секций настроек в одном файле, проверка на корректность и другое.
Пока что все. До связи и хорошего дня!
А Вы используете технологический журнал?
Другие ссылки
-
Получение top 25 вызовов в клиент-серверном режиме работы с наибольшей суммарной длительностью
-
Исследование технологического журнала 1С при помощи регулярных выражений в блокноте
-
Автоматическая классификация ошибок технологического журнала
Авторские разработки
-
Транслятор запросов 1С в SQL - инструмент для трансляции запросов платформы 1С в SQL, а также их диагностики.
-
Просмотр и анализ структуры базы данных (отчет на СКД) - отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.
-
Просмотр и анализ журнала регистрации (отчет на СКД) - отчет на базе системы компоновки данных (СКД) для просмотра записей журнала регистрации.
-
История работы пользователей (отчет на СКД) - отчет для просмотра истории работы пользователей (СКД, просмотр для любого пользователя).
-
Экспорт журнала регистрации. Набор инструментов (приложения + исходный код) - набор инструментов для экспорта данных журнала регистрации во внешние хранилища для Windows и Linux. Готовые приложения и исходный код.
-
Технические проверки данных регистров бухгалтерии (отчет на СКД) - отчет для технических проверок данных бухгалтерских регистров.
-
Путеводитель по истории релизов - отчет по истории выпуска релизов продуктов фирмы "1С" и анализа информации по обновлениям.
- Помощник работы с идентификаторами объектов - инструмент для расширенного анализа идентификаторов объектов.
-
Информация о пользователях информационной базы (отчет на СКД) - два простых отчета по пользователям информационной базы и информации по ним.
-
Анализ производительности APDEX (бесплатный) - отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.
-
Обозреватель криптографии - отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.
-
Пакетная выгрузка / загрузка внешних отчетов и обработок - пакетная выгрузка / загрузка внешних отчетов и обработок для массовый манипуляций с ними.
-
Мастер полнотекстового поиска - набор инструментов для работы с полнотекстовым индексом платформы 1С. Стандартные и расширенные возможности.
-
Командный интерпретатор для 1С - инструмент для выполнения команд CMD / PowerShell из 1С
-
Диагностика контекста выполнения (внешняя компонента) - небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.