|
Есть эксперты по техн. вопросам? Сеанс "засыпает" при фиксации длинной транзакции. | ☑ | ||
---|---|---|---|---|
0
pavig
07.03.18
✎
11:00
|
Всем привет.
Проблема плавающая, сложная и не тривиальная. Дано. Есть некий управленческий документ, который собирает в себя всю движуху по складу и кассе (в т.ч. производство) за день по точке. Таких точек в день порядка 200. Документ достаточно большой. Зачем он нужен - вопрос отдельный. Сейчас вопрос не в этом. Есть отдельный механизм отражения этого документа в бух. учете. По некоторому событию в системе ночью начинается эта тема. Система по данным этого документа последовательно проводит кучу проверок и "рождает" кучу бух. документов. Фишка в том, что всё это происходит в одной транзакции (почему - тоже вопрос отдельный пока на него не будем отвлекаться). Один документ Упр - одна транзакция, в которой рождаются и проводятся бух. документы. Длительность всей операции составляет примерно от 50 до 70 секунд, и это нас устраивает (пока) на один документ. Проблема. Иногда (грубо говоря, раз в час) При фиксации транзакции ЗафиксироватьТранзакцию(); сеанс... я даже не знаю как это назвать... "зависает"...? Симптомы: 1. В консоли администрирования 1С "зависший" сеанс наращивает колонку "Захвачено СУБД", колонка "Заблокировано СУБД" - пустая. см. скрин: http://screenshot.ru/upload/image/aJ51 2. В Журнале регистрации "зависшая" транзакция имеет статус "Не завершена", причем никаких больше записей в журнале с момент "зависания" нет. см. скрин: http://screenshot.ru/upload/image/aJ5f 3. Никаких зависимостей от конкретного документа нет. То есть на одном и том же документе транзакция может зависнуть, а может пройти без проблем. Что уже делали. Переносили всю базу на другой сервер СУБД (не меняли сервер приложений). Не помогло. Запускали в тестовой базе (изолированный сервер) - ситуация не воспроизводится. Просьба "обратиться к специалисту" и "переделать логику документа" не предлагать, ибо сами до этого варианта догадались, но интересно решить конкретно эту проблему, а не подстраиваться под обстоятельства. Всем заранее спасибо. |
|||
1
Вафель
07.03.18
✎
11:05
|
перезагрузку сервера 1с делали?
|
|||
2
pavig
07.03.18
✎
11:05
|
(1) Конечно всё перезапускали
|
|||
3
ildary
07.03.18
✎
11:11
|
(2) Серверный кеш чистили?
|
|||
4
pavig
07.03.18
✎
11:13
|
(3)
Проводили перерегистрацию базы в кластере. Не помогло. |
|||
5
vi0
07.03.18
✎
11:23
|
(0) что значит зависает?
|
|||
6
pavig
07.03.18
✎
11:24
|
(5) Значит смотри на скринах - с определенного момента ничего в базе не происходит.
|
|||
7
Вафель
07.03.18
✎
11:26
|
Очевидно, что это глюк сервера.
Экспертов не учат разбираться в глюках к сожалению |
|||
8
ИТ директор
07.03.18
✎
11:26
|
(5) Я конечно не X-перд, но спрошу.
1. Колонка "Заблокировано СУБД" и должна быть пустая, если конфа на упр. блокировках. 2. "Захвачено СУБД" говорит о том что идет вызов СУБД, и это нормально. 3. С чего ты взял что ничего не происходит? |
|||
9
vi0
07.03.18
✎
11:26
|
(6) как долго?
|
|||
10
vi0
07.03.18
✎
11:28
|
(0) > Иногда (грубо говоря, раз в час)
раз в час зависает, а выполняется как часто? |
|||
11
pavig
07.03.18
✎
11:29
|
(8) "С чего ты взял что ничего не происходит?", (9)
Транзакция не фиксируется очень долго. Больше часа не проверяли, так как другие работать не могут и обмены стоят. Просто выкидывали сеанс. |
|||
12
pavig
07.03.18
✎
11:30
|
(10)
Постоянно, если есть что проводить. |
|||
13
ИТ директор
07.03.18
✎
11:31
|
(11)
1. Сними трассу в это время и увидишь что происходит на SQL SERVERe. 2. Настрой ТЖ на события DBMSSQL и SDBL. 3. Сопоставь. |
|||
14
pavig
07.03.18
✎
11:32
|
(13)
Ок спасибо за дельный совет. Отпишу по результату. |
|||
15
vi0
07.03.18
✎
11:32
|
(12) постоянно, т.е. выполняется попытка ежесекундно в одном сеансе?
|
|||
16
pavig
07.03.18
✎
11:33
|
(13)
П.С. парсить ТЖ как посоветуешь? Есть готовый парсер? |
|||
17
Cyberhawk
07.03.18
✎
11:33
|
(6) "ничего в базе не происходит" // Чем докажешь?
|
|||
18
pavig
07.03.18
✎
11:33
|
(15)
Раз в 10 минут запускается регламентное задание. Естественно, если оно на текущий момент выполняется (даже если "зависшее") то новое задание не стартует. |
|||
19
ИТ директор
07.03.18
✎
11:34
|
+(13) по SDBL увидишь транзакции, а если транзакция зависла на SQL SERVER то смотри dbcc opentran
|
|||
20
pavig
07.03.18
✎
11:34
|
(17)
Ничем не буду доказывать ибо имею только записи в ЖР и консоль администрирования 1С. Что там происходит по факту - это и есть цель узнать. |
|||
21
ИТ директор
07.03.18
✎
11:35
|
(16) Готовый парсер только ЦУП
|
|||
22
pavig
07.03.18
✎
11:36
|
Блин там в ТЖ столько всякого *овна валится
|
|||
23
ИТ директор
07.03.18
✎
11:36
|
Но ЦУП в твоем случае не подойдет, т.к. он рассчитан на готовые сценарии, а у тебя непонятно что вообще происходит
|
|||
24
Cyberhawk
07.03.18
✎
11:36
|
(20) Переобуваешься? )
|
|||
25
Cyberhawk
07.03.18
✎
11:37
|
(21) ИР чем не устраивает?
|
|||
26
pavig
07.03.18
✎
11:37
|
(25)
Инструменты разработчика? |
|||
27
ИТ директор
07.03.18
✎
11:39
|
(25) не пробовал, не знаю
|
|||
28
pavig
07.03.18
✎
11:40
|
(25)
Спасибо за дельный совет, попробую. |
|||
29
Cyberhawk
07.03.18
✎
11:41
|
(26) Да. Кастую TormozIT в ветку, он щас даст ссылку на нужный инструмент по парсингу ТЖ
|
|||
30
ИТ директор
07.03.18
✎
11:44
|
(28) ЛОЛ, что ты попробуешь?
|
|||
31
Cyberhawk
07.03.18
✎
11:45
|
(30) Запустить ИР, настроить ТЖ, собрать ТЖ, поглядеть )
|
|||
32
ИТ директор
07.03.18
✎
11:47
|
(22) Сделай отбор по сеансу который висит
<?xml version="1.0" encoding="UTF-8"?> <config xmlns="http://v8.1c.ru/v8/tech-log"> <log location="C:\LOGS" history="1"> <event> <property="Name" value="SDBL"/> <eq property="SessionID" value="332"/> </event> <property name="all"/> </log> </config> Отпишись что получилось |
|||
33
ИТ директор
07.03.18
✎
11:50
|
*поправочка <eq property="Name" value="SDBL"/>
|
|||
34
тарам пам пам
07.03.18
✎
12:07
|
Таймаут для блокировок не трогали? А то, учитывая что монопольно не воспроизводится, очень похоже на ожидание на блокировках.
|
|||
35
Вафель
07.03.18
✎
12:08
|
Разве можно настраивать таймаут для упр блокировок?
|
|||
36
pavig
07.03.18
✎
12:09
|
(34)
Таймаут 60 секунд |
|||
37
pavig
07.03.18
✎
12:09
|
(30)
Парсер ТЖ из ИР |
|||
38
Elatiell
07.03.18
✎
12:09
|
(0) Сколько строк в документе? Сколько строк в порождаемых документах?(хотя бы порядок укажите сотни, десятки тысяч и т.д.) Какие еще операции выполняются в базе вместе с описанной? Что с загрузкой оборудования в момент выполнения операции? И все же еще раз спрошу вопрос: "Что значит "Зависает"?" - это означает никто зайти в базу не может или другие документы перестают записываться или что-то третье?
|
|||
39
Cyberhawk
07.03.18
✎
12:11
|
(38) "Что значит "Зависает"?"" // Они ждали час и ничего не "отвисло" )
|
|||
40
pavig
07.03.18
✎
12:15
|
(38)
"Сколько строк в документе? Сколько строк в порождаемых документах?(хотя бы порядок укажите сотни, десятки тысяч и т.д.)" Строк в документах от 5 до 150. Количество порождаемых документов от 3 до 6. "Какие еще операции выполняются в базе вместе с описанной?" Много всего, обычная работа обычной бухгалтерии предприятия. Плюс частые обмены РИБ (примерно каждые 10 минут). "Что с загрузкой оборудования в момент выполнения операции?" Сервер мощный, на нем крутится несколько разных баз поэтому зависимости загрузки оборудования админами на были не выявлены. "И все же еще раз спрошу вопрос: "Что значит "Зависает"?" - это означает никто зайти в базу не может или другие документы перестают записываться или что-то третье?" см. (39), это всё что мы знаем. Посмотри скрины, там в принципе видно, что я имею ввиду под "зависает". |
|||
41
pavig
07.03.18
✎
12:16
|
Версия платформы 8.3.10.2667
|
|||
42
pavig
07.03.18
✎
12:16
|
Скуль 2012
|
|||
43
pavig
07.03.18
✎
12:17
|
Обработки проведения документов БУ почти типовые, никаких "кривых рук" замечено не было.
|
|||
44
ИТ директор
07.03.18
✎
12:18
|
(42) ТЖ собрал?
|
|||
45
pavig
07.03.18
✎
12:22
|
(44)
1. Трассировку скуля запустили на долгие операции. 2. ТЖ настроен на долгие запросы больше 60 секунд: <?xml version="1.0" encoding="UTF-8"?> <config xmlns="http://v8.1c.ru/v8/tech-log"> <query:log xmlns:query="http://v8.1c.ru/v8/tech-log" location="E:\logs\Query1с_1" history="8"> <query:event> <query:eq property="Name" value="SDBL"/> <query:ge property="Duration" value="600000"/> </query:event> <query:event> <query:eq property="Name" value="DBMSSQL"/> <query:ge property="Duration" value="600000"/> </query:event> <query:property name="p:processName"/> <query:property name="t:computerName"/> <query:property name="t:connectID"/> <query:property name="dbpid"/> <query:property name="Context"/> <query:property name="Sql"/> <query:property name="Usr"/> </query:log> </config> Проблема пока еще не воспроизводилась. Как только воспроизведется - подожду минут 10, пусть текущий ТЖ пособирает логи, потом настрою на номер сеанса который завсит по твоему примеру из (32) Параллельно скачиваю ИР, покурю их немного. |
|||
46
ИТ директор
07.03.18
✎
12:24
|
(35) можно
|
|||
47
kauksi
07.03.18
✎
12:25
|
тупо писать в лог/внешний файл все действия твоей процедуры. там где остановицца там и затык
|
|||
48
pavig
07.03.18
✎
12:28
|
(47)
По этому направлению тоже работаем. Пишем, добавляем, ищем. |
|||
49
pavig
07.03.18
✎
12:32
|
Похоже что в (0) ошибка.
Проблема начинается не при ЗафиксироватьТранзакцию(); а где-то раньше, внутрях типовых. |
|||
50
ИТ директор
07.03.18
✎
12:34
|
(49) *Рукалицо
Ты же сам жалуешься что ТЖ получается большого объема. Я тебе показал как сделать отбор по конкретному сеансу по определенному событию. По идее надо ловить все события этого сеанса, прежде всего чтобы понять что делает этот сеанс если он вообще что-то делает (может он вообще тупо ничего не делает и это глюк платформы). Ну и посмотреть активные транзакции на СУБД, наверняка там есть одна длительная если соединение удерживается. |
|||
51
Elatiell
07.03.18
✎
12:34
|
(45) С чего Вы взяли, что это долгий запрос? Судя по вашему описанию зависание происходит, при фиксировании транзакции, то есть, грубо говоря, при записи в файл логов транзакций.
|
|||
52
Elatiell
07.03.18
✎
12:34
|
(51) Отбой. Прочитал (49)
|
|||
53
ИТ директор
07.03.18
✎
12:36
|
(49) Сделай отбор всех событий по сеансу который висит, посмотри что он делает
<?xml version="1.0" encoding="UTF-8"?> <config xmlns="http://v8.1c.ru/v8/tech-log">; <log location="C:\LOGS" history="1"> <event> <ne property="Name" value=""/> <eq property="SessionID" value="332"/> </event> <property name="all"/> </log> </config> |
|||
54
pavig
07.03.18
✎
12:42
|
(53)
Блин пока он зависнет непонятно сколько ждать. Этот не хуже будет все события собирать чем только долгие запросы? Не это ли геморрой? Когда уже зависнет - тогда да, буду всё собирать по этому сеансу. Или я не прав? |
|||
55
vi0
07.03.18
✎
13:03
|
(54) профайлер посмотреть еще никто не советовал?
|
|||
56
pavig
07.03.18
✎
13:08
|
(55) см (13)
|
|||
57
Elatiell
07.03.18
✎
13:10
|
(56) Ты отпишись как найдешь затык. Интересножеж. :)
|
|||
58
Вафель
07.03.18
✎
13:11
|
(54) не факт что виснет именно запрос.
Но если долго ждать, то объем лога может быть гигабайты итам уже найти что-то может быть весьма проблематично |
|||
59
pavig
07.03.18
✎
13:11
|
(57)
Обязон. Оно зараза теперь и не зависает) Сидит где-то и не отсвечивает) видимо понятно стало что всерьез занялись) |
|||
60
pavig
07.03.18
✎
13:12
|
(58)
Вот я этого опасаюсь. Сейчас малыми дозами Тж попробую обойтись. Если не поможет - включу на полную катушку по совету ИТ директор |
|||
61
ИТ директор
07.03.18
✎
13:14
|
(54) Ну настрой на 60 сек, хуже не станет. Но 60 сек это очень много, вряд ли уж у вас там запросы такие долгие и поэтому таким образом причину ты не найдешь.
(60) у меня как раз не на полную катушку, а только по проблемному сеансу чтобы понять что он делает |
|||
62
Elatiell
07.03.18
✎
13:38
|
(60) А регламентные операции по статистике и индексам в какое время выполняются? Нет закономерностей, что, например, после этих операций зависания начинаются?
|
|||
63
vi0
07.03.18
✎
13:41
|
(56) и что профайлер говорит?
Какая нагрузка на сервер 1с,сервер скл? |
|||
64
TormozIT
гуру
07.03.18
✎
14:03
|
Бесплатный инструмент для анализа техножурнала из подсистемы "Инструменты разработчика"
http://devtool1c.ucoz.ru/index/analiz_tekhnozhurnala/0-16 |
|||
65
pavig
07.03.18
✎
14:09
|
(64)
Уже использую, великолепная штукенция! |
|||
66
pavig
07.03.18
✎
14:11
|
(63)
Еще разбираемся, я там первый раз в жизни, админ тоже) |
|||
67
Cyberhawk
07.03.18
✎
14:26
|
(66) "я там первый раз в жизни, админ тоже)" // А ты там кем?
|
|||
68
Вафель
07.03.18
✎
14:36
|
(64) большие журналы не проанализируешь таким инструментом
|
|||
69
TormozIT
гуру
07.03.18
✎
16:48
|
(68) Если указать интересующее окно во времени, то проанализируешь. Еще 64-разрядный толстый клиент рекомендую, если журнал большой даже в интересующем интервале.
|
|||
70
pavig
12.03.18
✎
12:14
|
(67)
Имелось ввиду что в профайлере я был в первый раз в жизни |
|||
71
pavig
12.03.18
✎
12:20
|
Коллеги, всем спасибо за полезные советы.
По настройке ТЖ товарища https://www.forum.mista.ru/users.php?id=106078 удалось обнаружить неоптимальный запрос: в очень большом регистре сведений было соединение по полую регистратора. Видимо, временами это очень сильно огорчало СУБД. Запрос оптимизирован, проблема устранена. Благодарю! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |