08.09.2014, 14:47 | #1 |
Участник
|
Чем занят пакетник и на чём он тормозит?
Здравствуйте. DAX 2009 3761, SQL 2008 R2 (SP2)
Уже пару недель очень странно ведут себя пакетные задания, занятые разноской заказов на продажу. Работает два пакетных АОСа на разных серверах, обрабатывающие одну пакетную группу. И периодически возникает такая ситуация, когда часами задания висят часами в статусе "Выполнение", но фактически ничего не происходит. В данный момент творится вообще какой-то сюр: задания, висящие в выполнении, снял, удалил их из пакетной очереди, перезагрузил пакетные АОСы, но остальные задания как были в Ожидании, так и остаются. Прибил на SQL процессы, запускаемые под учёткой этих пакетников,, которые продолжали обращаться к таблицам, участвующим в разноске - они моментально реинкарнируются под теми же spid и продолжают что-то делать. Сосбтвенно, прошу совета: как бы понять, что там творится и чего ему не хватает для счастья? То ли запросы на SQL долго выполняются, то ли программная логика хромает и уже зависание именно на аосе происходит, то ли производительность железа подводит. |
|
08.09.2014, 15:02 | #2 |
Участник
|
Никто вам не скажет здесь.
Придется разбираться самим. В качестве подсказки : В форме активных пользователей вы видите SessionId Его же можно вывести в форме пакетов Batch Сопоставляя эти значения понять какая сессия какому пакету соответствует. Ну и подсмотреть по SID из формы активных пользователей какие запросы в БД идут. Можно также сохранять sessionId и в логе длинных запросов SQL. А вообще мне казалось что не принято одну и ту же пакетную группу на несколько пакетных аосов назначать. Но могу и ошибаться. |
|
|
За это сообщение автора поблагодарили: gl00mie (2). |
08.09.2014, 16:11 | #3 |
----------------
|
блокировки смотрели?
|
|
|
За это сообщение автора поблагодарили: mazzy (2). |
08.09.2014, 16:19 | #4 |
Участник
|
а может оно зацикливается?
посмотрите нет ли у вас в коде конструкции типа X++: try
{
...
}
catch
{
retry;
} |
|
08.09.2014, 16:55 | #5 |
Участник
|
|
|
08.09.2014, 19:01 | #6 |
Участник
|
Нет, блокировок нет, в том-то и засада. Там, где идёт retry, вставил вывод информации об этом в инфолог, в нём чисто. Хотя есть подозрение, что в журнал пакетного задания эти сообщения могут и не попасть.
На стороне SQL соответствующие процессы часто висят в состоянии awaiting command - то есть, по идее, ждут, пока АОСу ещё что-то от них потребуется, а он неторопливо обрабатывает полученное. Последний раз редактировалось Corel; 08.09.2014 в 19:07. |
|
08.09.2014, 19:50 | #7 |
Участник
|
в инфолог сообщения не попадают пока пакет не завершится.
попробуйте использовать такую конструкцию с #OCCRetryCount. Пример можно посмотреть в классе tutorial_RunBaseBatch метод run(). В этом случае пакетная обработка не будет зацикливаться, а будет завершаться после 3х попыток. |
|
09.09.2014, 00:17 | #8 |
Участник
|
Цитата:
PS. Вспомнилось: "Ну признайтесь уже — джаваскрипт алертами дебажили?" |
|
09.09.2014, 17:46 | #9 |
Участник
|
Так, ок, попробую Trace Parcer. Про вывод в инфолог: смотрел журнал уже после отработки пакетника (он, хоть и тупит, но в конце концов отрабатывает), пусто.
Кстати, для многих пакетов в статусе Выполнение не назначен экземпляр сервера (поле ServerId в таблице Batch) - это нормально? |
|
09.09.2014, 19:48 | #10 |
Участник
|
Цитата:
|
|
|
За это сообщение автора поблагодарили: Corel (1), S.Kuskov (2), A_BAS (1). |
12.09.2014, 20:19 | #11 |
Участник
|
а как настроена группа пакетных заданий? есть в ней batch-серверы?
__________________
Felix nihil admirari |
|
Теги |
batch, пакетный сервер |
|
Похожие темы | ||||
Тема | Ответов | |||
Тормозит разноска Заказа на Покупку с ОС | 6 | |||
Местами тормозит DAX2009 | 9 | |||
Пакетник в Dax-2009 как 4.0 | 18 | |||
ListView в чём секрет ширины элементов? | 16 | |||
display метод тормозит | 4 |
|