Текущее время: Чт, июн 19 2025, 01:12

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: проверка зависания программы
СообщениеДобавлено: Вт, май 05 2015, 10:35 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
Всем привет,

Есть две запущенные программы.
Из программы А можно узнать свой идентификатор программы (вызов функции TH_GET_OWN_WP_NO) и записать его куда-нибудь (к примеру, в общую память или базу данных), а из программы Б вызвать проверку системного состояния всех запущенных программ функцией RZL_SYSTEMWIDE_WPINFO и найти искомую по PID.

Но вот как убедиться, что программа именно зависла, а не "просто долго работает, система сейчас под нагрузкой, не мешайте"?

Заранее спасибо!
п.с. логика программы Б известна, в бесконечный луп она не может уйти.

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Вт, май 05 2015, 23:08 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
dedzinatajs написал(а):
Но вот как убедиться, что программа именно зависла

А что значит "зависла"? Какие критерии "зависания"? И какая программа "зависла" - А или Б?
Обычно для определения проблем используется либо SM50 (из нее можно перейти в отладку, к примеру), либо анализ статистики обращений к БД(этим занимаются базисники).
Для анализа работы программы изнутри можно использовать application log, который предназначен как раз для диагностики работы программы.
Кроме этого, для программ, работающих в фоновом режиме, достаточно формирования статусных сообщений, которые сохраняется в журнале работы фонового задания.
Зачем нужна отдельная программа - непонятно.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Пт, май 08 2015, 22:02 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
Цитата:
А что значит "зависла"? Какие критерии "зависания"? И какая программа "зависла" - А или Б?


Зависание - как в винде ;)
Критерием зависания я считаю, если где-то в тексте программы есть
команда 1.
команда 2.
и после выполнении команды 1, не являющейся бесконечным лупом, в силу каких-то глюков не программы а самой операционки (ну там, память кончилась итд) команда 2 уже никогда не выполнится, и программа при этом не будет убита менеджером процессов (как это происходит при вылете в дамп итд).

Цитата:
Зачем нужна отдельная программа - непонятно.

Надо. Последовательная обработка определенных айдоков. Необходимо удостовериться, что предыдущий обработчик закончил работу.
п.с. про Process by background job знаю, в силу определенных условий не хочу использовать.

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Вс, май 10 2015, 14:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
dedzinatajs написал(а):
Последовательная обработка определенных айдоков. Необходимо удостовериться, что предыдущий обработчик закончил работу.
п.с. про Process by background job знаю, в силу определенных условий не хочу использовать.

А сериализацию не использовали?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Пн, май 11 2015, 09:52 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
Про сериализацию я в курсе :)
Как я понимаю
Цитата:
The ALE function module SERIALIZATION_CHECK flags each IDoc that has been overtaken. An overtaken IDoc is defined as follows: assuming IDocs A and B contain information about object/document X (such as order number 4711). If A is created by the SAP sending system before B, but B has already been successfully processed by the SAP receiving system, A is said to have been overtaken.

- не совсем то, что мне надо, т.е. саповская сериализация может только проверить, не получилось ли так, что айдок с бОльшим номером, относящимся к этому же Sales Order-у, уже обработан.

Лучше подскажите, как из программы узнать зависание параллельного процесса

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Вт, май 12 2015, 10:46 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Поясните, что делает команда 1, не являющаяся бесконечным циклом? Где она выполняется - на том же сервере приложений или в удаленной системе?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Вт, май 12 2015, 16:45 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
Все происходит на одном и том же сервере приложений, команда 1, грубо говоря - выборка данных селектом, а команда 2 - выполнение BAPI на основе этой выборки + кое-каких данных из айдока. В теории ничего зависнуть не должно - не виндоз, чай - но на практике хочется подстраховаться.

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Ср, май 13 2015, 08:41 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
В Вашем примере я бы не стал беспокоиться о зависаниях. В моей практике процессы зависали в основном на операциях, выполняемых в удаленных системах. Вроде как запрос отправлен и процесс ждет ответа, а по факту что-то сбоило в сети и ответ никогда уже не вернется.

Если бы Вы точно знали примерное время выполнения команды 1 (по логике программы) при максимально загруженном сервере приложений, то можно было бы организовать подобный подход по удалению "зависшего" задания. Причем путей множество - от использования событий WF до простой блокировки на ненужную Z-таблицу целиком (перед командой 1 поставил блокировку + запланировал проверяющее задание с учетом времени выполнения команды, а по завершению команды 1 снял бы блокировку. Если проверяющее задание найдет блокировку - то удалить исходное задание).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Ср, май 13 2015, 10:16 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
Да, именно как раз с блокировками я и сделал ;)

То есть перед выполнением команды 1 программа А делает запись в Z-таблицу и ставит на нее блокировку. Программа Б смотрит, есть ли более ранние записи в Z-таблице и по прошествию некоторого времени пытается удалить их. Если программа А до сих пор работает - то у программы Б ничего не получается и она ждет завершения программы А. Если же программа А закончила работу или улетела в дамп - то блокировка слетает, программа Б успешно удаляет запись оставленную программой А и начинает работу. Слабое место этого всего - ситуация когда программа А вроде и не закончила работу, но и реально ничего не делает. Не знаю как у вас но у меня изредка в САПе бывало - работаешь и зависла транзакция, при этом сама система работает нормально, новую такую же транзакцию можно открыть, а старой приходится делать Stop Transaction.

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Ср, май 13 2015, 10:28 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
dedzinatajs написал(а):
Не знаю как у вас но у меня изредка в САПе бывало - работаешь и зависла транзакция, при этом сама система работает нормально, новую такую же транзакцию можно открыть, а старой приходится делать Stop Transaction.

Это похоже на проблемы с сеткой.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Ср, май 13 2015, 10:31 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, фев 02 2009, 10:20
Сообщения: 89
Пол: Мужской
dedzinatajs написал(а):
Не знаю как у вас но у меня изредка в САПе бывало - работаешь и зависла транзакция, при этом сама система работает нормально, новую такую же транзакцию можно открыть, а старой приходится делать Stop Transaction.

Это больше похоже на глюки клиентской части, которые действительно случаются время от времени, но обработка idoc на клиента не завязана.

_________________
периодически играю в песочнице :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Ср, май 13 2015, 10:35 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
Спасибо всем за ответы!

Оставлю тогда пока все как есть и потестирую в песочнице пару недель ;)

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проверка зависания программы
СообщениеДобавлено: Чт, июн 04 2015, 08:57 
Специалист
Специалист

Зарегистрирован:
Ср, янв 26 2005, 05:11
Сообщения: 185
Пол: Мужской
Всем добрый день.
Для проверки зависания программы я сделал следующее:
В основной программе периодически записывал в shared memory wpinfo-wp_cpu, полученный из ФМ TH_WP_DETAIL_INFO.
А в мониторе считывал shared memory и если предыдущее значение wpinfo-wp_cpu равно считанному в в течении длительного времени - значит прога зависла или вообще отвалилась.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB