Не собирается ТЖ по блокировкам СУБД.
Коллеги, добрый день. Можете уточнить по таким событиям как lka, lkp и т.д., не могу понять почему они у меня не ловятся, а так же при перехвате всех событий DBMSSQL при свойствах = all я их так же не вижу.
Версия 1С: 1С:Предприятие 8.3 (8.3.9.1850)
Режим совместимости 8.2.16, может быть он виноват ?
Текущий конфиг ТЖ ниже, сами папки рп хост создаются из чего я делаю вывод о том, что конфиг должен быть настроен правильно.
Версия 1С: 1С:Предприятие 8.3 (8.3.9.1850)
Режим совместимости 8.2.16, может быть он виноват ?
Текущий конфиг ТЖ ниже, сами папки рп хост создаются из чего я делаю вывод о том, что конфиг должен быть настроен правильно.
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<latch_debug:log xmlns:latch_debug="http://v8.1c.ru/v8/tech-log" location="путь\LKA" history="1">
<latch_debug:event>
<latch_debug:eq property="Name" value="DBMSSQL"/>
<latch_debug:eq property="p:processName" value="NameBD"/>
<latch_debug:eq property="lka" value="1"/>
</latch_debug:event>
<latch_debug:property name="p:processName"/>
<latch_debug:property name="t:computerName"/>
<latch_debug:property name="t:connectID"/>
<latch_debug:property name="Trans"/>
<latch_debug:property name="dbpid"/>
<latch_debug:property name="Context"/>
<latch_debug:property name="Sdbl"/>
<latch_debug:property name="lka"/>
<latch_debug:property name="lkato"/>
<latch_debug:property name="lkaid"/>
<latch_debug:property name="Sql"/>
<latch_debug:property name="Func"/>
<latch_debug:property name="tableName"/>
<latch_debug:property name="Usr"/>
</latch_debug:log>
<latch_debug:log xmlns:latch_debug="http://v8.1c.ru/v8/tech-log" location="\\путь\LKP" history="1">
<latch_debug:event>
<latch_debug:eq property="Name" value="DBMSSQL"/>
<latch_debug:eq property="p:processName" value="NameBD"/>
<latch_debug:eq property="lkp" value="1"/>
</latch_debug:event>
<latch_debug:property name="p:processName"/>
<latch_debug:property name="t:computerName"/>
<latch_debug:property name="t:connectID"/>
<latch_debug:property name="Trans"/>
<latch_debug:property name="dbpid"/>
<latch_debug:property name="Context"/>
<latch_debug:property name="Sdbl"/>
<latch_debug:property name="lkp"/>
<latch_debug:property name="lkpid"/>
<latch_debug:property name="lkpto"/>
<latch_debug:property name="lksrc"/>
<latch_debug:property name="Sql"/>
<latch_debug:property name="Func"/>
<latch_debug:property name="tableName"/>
<latch_debug:property name="Usr"/>
</latch_debug:log>
</config>
ПоказатьПо теме из базы знаний
- Мониторинг SQL Server с помощью Extended Events (и не только) для 1С. Как держать руку на пульсе?
- Описание почти всех событий технологического журнала
- Анализ блокировок СУБД: таблица изменений плана обмена 1С
- Рецепты приготовления технологического журнала
- «Монитор» – простой анализ производительности
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
1) глянь главы на ИТС
3.19.2.12. Элемент <dbmslocks>
3.19.4. Вывод информации о взаимных блокировках
Пруфик
33:46.018000-15999,DBMSSQL,5,process=rphost,p:processName=test,OSThread=8776,t:clientID=8,t:applicationName=1CV8C,t:computerName=K1709040,t:connectID=3,SessionID=11,Usr=DefUser,AppID=1CV8C,Trans=1,dbpid=55,Sql=COMMIT TRANSACTION,lka=1,lkaid=2,lkato=266,Context='Форма.Вызов : ВнешняяОбработка.Блокируем.Форма.Форма.Модуль.БлокируемНаСервере
ВнешняяОбработка.Блокируем.Форма.Форма.Форма : 23 : ЗафиксироватьТранзакцию();'
Обработка для воспроизведения
ПС: Для простоты воспроизведения, работал в режиме Автоматических блокировок (ну типо СУБД блокировку в Упр. режиме хер воспроизведешь)
ПС2: не забыть завершить все пинги на сервере =)
3.19.2.12. Элемент <dbmslocks>
3.19.4. Вывод информации о взаимных блокировках
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dbmslocks/>
<log history="10" location="\\путь\LKA">
<event>
<eq property="name" value="dbmssql"/>
<eq property="lka" value="1"/>
</event>
<property name="all"/>
</log>
</config>
ПоказатьПруфик
33:46.018000-15999,DBMSSQL,5,process=rphost,p:processName=test,OSThread=8776,t:clientID=8,t:applicationName=1CV8C,t:computerName=K1709040,t:connectID=3,SessionID=11,Usr=DefUser,AppID=1CV8C,Trans=1,dbpid=55,Sql=COMMIT TRANSACTION,lka=1,lkaid=2,lkato=266,Context='Форма.Вызов : ВнешняяОбработка.Блокируем.Форма.Форма.Модуль.БлокируемНаСервере
ВнешняяОбработка.Блокируем.Форма.Форма.Форма : 23 : ЗафиксироватьТранзакцию();'
Обработка для воспроизведения
&НаКлиенте
Процедура Блокируем(Команда)
БлокируемНаСервере();
КонецПроцедуры
&НаСервере
Процедура БлокируемНаСервере()
НачатьТранзакцию();
Выборка = Справочники.Организации.Выбрать();
Выборка.Следующий();
ОрганизацияОбъект = Выборка.Ссылка.ПолучитьОбъект();
ОрганизацияОбъект.Наименование = Строка(Новый УникальныйИдентификатор);
ОрганизацияОбъект.Записать();
ЗапуститьПриложение("cmd ping ya.ru -t",, Истина);
ЗафиксироватьТранзакцию();
КонецПроцедуры
&НаКлиенте
Процедура Блокируемся(Команда)
БлокируемсяНаСервере();
КонецПроцедуры
&НаСервере
Процедура БлокируемсяНаСервере()
НачатьТранзакцию();
Выборка = Справочники.Организации.Выбрать();
Выборка.Следующий();
ОрганизацияОбъект = Выборка.Ссылка.ПолучитьОбъект();
ОрганизацияОбъект.Наименование = Строка(Новый УникальныйИдентификатор);
ОрганизацияОбъект.Записать();
ЗафиксироватьТранзакцию();
КонецПроцедуры
&НаКлиенте
Процедура Дедлок(Команда)
ДедлокНаСервере()
КонецПроцедуры
&НаСервере
Процедура ДедлокНаСервере()
НачатьТранзакцию();
Выборка = Справочники.Организации.Выбрать();
Выборка.Следующий();
ЗапуститьПриложение("cmd ping ya.ru -t",, Истина);
ЗафиксироватьТранзакцию();
КонецПроцедуры
&НаСервере
Процедура ДедлокНачалоНаСервере()
НачатьТранзакцию();
Выборка = Справочники.Организации.Выбрать();
Выборка.Следующий();
ЗапуститьПриложение("cmd ping ya.ru -t",, Истина);
ОрганизацияОбъект = Выборка.Ссылка.ПолучитьОбъект();
ОрганизацияОбъект.Наименование = Строка(Новый УникальныйИдентификатор);
ОрганизацияОбъект.Записать();
ЗафиксироватьТранзакцию();
КонецПроцедуры
&НаКлиенте
Процедура ДедлокНачало(Команда)
ДедлокНачалоНаСервере();
КонецПроцедуры
ПоказатьПС: Для простоты воспроизведения, работал в режиме Автоматических блокировок (ну типо СУБД блокировку в Упр. режиме хер воспроизведешь)
ПС2: не забыть завершить все пинги на сервере =)
Поднял до 5 $m
(21)
Держи за то, что запарился) Проблема в моем случае связана с режимом совместимости.
В общем видимо наступил момент, когда пора уходить от блокировок СУБД.
Перевел конфигурацию в управляемый режим блокировок + скуль в режим версионника. Во вторник задеплою, посмотрю результат, надеюсь забуду про блокировки СУБД )
(21)
Держи за то, что запарился) Проблема в моем случае связана с режимом совместимости.
В общем видимо наступил момент, когда пора уходить от блокировок СУБД.
Перевел конфигурацию в управляемый режим блокировок + скуль в режим версионника. Во вторник задеплою, посмотрю результат, надеюсь забуду про блокировки СУБД )
(22) Приветствую! А чт обыло с совместимостью? Может у меня тоже это, так как нет полей lka, lkp и прочих. <dbmslocks/> присутствует.
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dbmslocks/>
<log history="72" location="D:\tech-log-FF">
<event>
<eq property="Name" value="DBMSSQL"/>
<eq property="p:processName" value="UHa"/>
</event>
<property name="t:computerName"/>
<property name="t:connectID"/>
<property name="Context"/>
<property name="Sql"/>
<property name="Sdbl"/>
<property name="lkaid"/>
<property name="lka"/>
<property name="lkp"/>
<property name="lkpid"/>
<property name="lksrc"/>
<property name="tableName"/>
<property name="Usr"/>
<property name="dbpid"/>
</log>
</config>
Показать
Попробуйте создать тоже самое при помощи этой штатной обработки.
Прикрепленные файлы:
technologicallogsetup.zip
Я не настоящий сварщик и даже не знаю что это за события lka и lkp.
Но меня смущает, что ты latch_debug переопределяешь. Никогда так не пробовал, но по-идее хотя бы имена должны быть разные все-таки.
Короче, я бы для начала откатал на простом каноническом конфиге с одним набором настроек, а потом уже запиливал разнесение.
Но меня смущает, что ты latch_debug переопределяешь. Никогда так не пробовал, но по-идее хотя бы имена должны быть разные все-таки.
Короче, я бы для начала откатал на простом каноническом конфиге с одним набором настроек, а потом уже запиливал разнесение.
Собрал очень лайтовый ТЖ:
Все ровно не попадают события, хотя проблемы с отвалом по тайм-ауту на конфликте блокировок субд присутствуют. Либо может быть я неправильно понимаю смысл свойств lka, lkp или все же неправильно их настраиваю ?
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log history="10" location="\\путь\LKA">
<event>
<eq property="name" value="dbmssql"/>
<eq property="lka" value="1"/>
</event>
<property name="all"/>
</log>
</config>
ПоказатьВсе ровно не попадают события, хотя проблемы с отвалом по тайм-ауту на конфликте блокировок субд присутствуют. Либо может быть я неправильно понимаю смысл свойств lka, lkp или все же неправильно их настраиваю ?
Это кстати вопрос на профессионала по тех вопросам.
https://docs.google.com/document/d/1BIrKdL_611Sq8B7gpQ5UYtXGJUfEPpdhQju25xI8cnA/ edit
Вопрос 4.2.
Вопрос 4.2.
(10) режим совместимости правильный, как раз с него начинают писаться такие события. Настройка странная, для блокировок достаточно такой:
<?xml version="1.0" encoding="UTF-8" ?>
- <config xmlns="http://v8.1c.ru/v8/tech-log">
- <log location="D:\Logs" history="48">
- <event>
<eq property="Name" value="TTIMEOUT" />
</event>
- <event>
<eq property="Name" value="TLOCK" />
</event>
- <event>
<eq property="Name" value="TDEADLOCK" />
</event>
<property name="all" />
</log>
</config>
ВАЖНО!!! пишутся события только по УПРАВЛЯЕМЫМ блокировкам, автоматические блокировки в ТЖ не фиксируются, даже если были
<?xml version="1.0" encoding="UTF-8" ?>
- <config xmlns="http://v8.1c.ru/v8/tech-log">
- <log location="D:\Logs" history="48">
- <event>
<eq property="Name" value="TTIMEOUT" />
</event>
- <event>
<eq property="Name" value="TLOCK" />
</event>
- <event>
<eq property="Name" value="TDEADLOCK" />
</event>
<property name="all" />
</log>
</config>
ВАЖНО!!! пишутся события только по УПРАВЛЯЕМЫМ блокировкам, автоматические блокировки в ТЖ не фиксируются, даже если были
(10)
Под рукой нет примера. Могу предложить только следующий вариант: на тестовой базе включаете полную запись логов, воспроизводите проблему. На сколько я помню в EXCP есть номер соединения. По этому номеру соединения ищите предшествующий DBMSSQL.
А виновника в общем то 2 может быть:
Захват ресурсов в разном порядке и эскалация.
(11) Не подойдет такая настройка тж для данной ситуации.
10. Денис Злобин (user612295_death4321) 02.05.18 22:57
(8)
Я это понимаю, но я хочу поймать контекст виновника + самого виновника. А за ссылку спасибо, интересно.
(8)
Я это понимаю, но я хочу поймать контекст виновника + самого виновника. А за ссылку спасибо, интересно.
Под рукой нет примера. Могу предложить только следующий вариант: на тестовой базе включаете полную запись логов, воспроизводите проблему. На сколько я помню в EXCP есть номер соединения. По этому номеру соединения ищите предшествующий DBMSSQL.
А виновника в общем то 2 может быть:
Захват ресурсов в разном порядке и эскалация.
(11) Не подойдет такая настройка тж для данной ситуации.
(12)
Выдернуть информация виновник - жертва в принципе не проблема, анализировав данные самой СУБД (трассировки, xe, различные запросы и хранимые процедуры), меня зацепила возможность мониторить это прямо из технологического журнала с возможностью выдернуть контекст)
ий вариант: на тестовой базе включаете полную запись логов, воспроизводите проблему. На сколько я помню в EXCP есть номер соединения. По этому номеру соединения ищите предшествующий DBMSSQL.
А виновника в общем то 2 может быть:
А виновника в общем то 2 может быть:
Выдернуть информация виновник - жертва в принципе не проблема, анализировав данные самой СУБД (трассировки, xe, различные запросы и хранимые процедуры), меня зацепила возможность мониторить это прямо из технологического журнала с возможностью выдернуть контекст)
(11) если блокировки управляемые и логи появятся - то легко найти TLOCK, который стал причиной TTIMEOUT. Общедоступной инструкции не нашел(, но есть здесь поиск виновника TDEADLOCK, почти тоже самое. В результате получишь контекст проблемного кода 1С. https://its.1c.ru/db/metod8dev#content:5809:hdoc ближе к концу статьи.
Примеры рабочие, проверенные на практике, настройка шаблонная из штатной обработки настройки ТЖ,
Примеры рабочие, проверенные на практике, настройка шаблонная из штатной обработки настройки ТЖ,
(14) Обрати внимание, что в статье как раз приводятся те свойства которые я описал в своем вопросе.
"DBMSSQL — исполнение операторов SQL СУБД Microsoft SQL Server. Также, ставлю отбор на параметр «lkp» = 1, означающий, что процесс ожидал предоставления блокировки." Чертов lkp не отрабатывает либо я что то неверно понимаю...
"DBMSSQL — исполнение операторов SQL СУБД Microsoft SQL Server. Также, ставлю отбор на параметр «lkp» = 1, означающий, что процесс ожидал предоставления блокировки." Чертов lkp не отрабатывает либо я что то неверно понимаю...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот