Текущее время: Вс, июл 20 2025, 00:04

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot]


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

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