REF: диагностика производительности и сбоев интеграции#
Медленная операция, зависшая доставка и ошибка обработки требуют разных доказательств. До трассировки или повтора выясните, на каком участке и в каком временном интервале возникает симптом, сохраните корреляцию с исходным бизнес-событием и отделите техническую доставку от успешного финансового результата.
Эта статья задаёт общий порядок. Для деталей используйте материалы о контракте RFC, BAPI и IDoc, ABAP SQL, блокировках и update task, трассах и профилировании и фоновых заданиях и Application Log.
1. Зафиксируйте воспроизводимый контекст#
Для одного бизнес-случая сохраните:
- SID/систему, клиента, релиз, приложение или endpoint и направление вызова;
- время начала и конца с часовым поясом, узел/instance, пользователя и тип процесса;
- бизнес-ключ документа, технический идентификатор сообщения или запроса, IDoc/очереди/job и корреляционный ID, если он предусмотрен;
- входные параметры, объём строк, ожидаемый и фактический результат, полный код и текст ошибки;
- номер попытки, время предыдущей попытки, статус отправки и приёма, статус прикладной обработки и созданный бизнес-документ, если есть;
- параметры измерения: одинаковый ли сценарий, объём и состояние данных сравниваются.
Не помещайте пароли, токены и персональные данные в журналы расследования. Идентификаторы и выдержки храните по правилам доступа к продуктивным данным.
2. Разделите задержку по этапам#
Сначала оцените общее время и число обработанных объектов, затем разложите путь на доступные в данном интерфейсе интервалы:
- запрос сформирован и отправлен;
- сеть/RFC или посредник принял сообщение;
- сообщение попало в очередь либо было передано получателю;
- приложение начало обработку;
- ABAP, SQL, lock wait или update завершились;
- результат зафиксирован и подтверждён вызывающей стороне.
Измеряйте время ожидания и активное время отдельно, если система это показывает. Сравните несколько сопоставимых выполнений и объем данных. Один общий таймер не показывает, где тратится время; единичный медленный запуск также не доказывает устойчивую деградацию.
3. Выберите узкий диагностический след#
| Признак | Что измерять и где искать |
|---|---|
| Дольше работает весь шаг ABAP | Runtime/ABAP trace: доли времени по вызовам и участкам кода; сравнение с тем же сценарием |
| Значимое время уходит в обращения к базе | SQL trace: длительность, число обработанных строк, частота повторяющихся операторов и план доступа |
| Процесс ждёт блокировку | Уточните тип lock: SAP enqueue или database lock wait; найдите владельца, ожидающую операцию, объект и длительность ожидания |
| RFC медленный или завершается ошибкой | Направление вызова, destination, удалённый узел, длительность, переданный объём и парная запись на принимающей стороне |
| Сообщение или задание долго стоит в очереди | Очередь/IDoc/job, её направление, первый незавершённый элемент, статус планировщика, время ожидания и соответствующий журнал приложения |
| Сообщение доставлено, но бизнес-результата нет | Отдельно проверьте статус IDoc/сообщения, application log, прикладной документ и его проводку; успешная доставка сама по себе не доказывает бизнес-обработку |
В ABAP Performance Trace доступны, в зависимости от выбранного типа, SQL, enqueue, RFC и table-buffer следы. Сначала сузьте пользователя, транзакцию, программу или короткий интервал, затем включите только нужный сбор, воспроизведите операцию и сразу остановите трассу. Трассы могут влиять на нагрузку, а кольцевые файлы перезаписываются. Используйте их адресно и с необходимыми полномочиями. См. SAP Help: Recording Performance Data.
SQL trace отвечает на вопрос об обращениях к базе; для распределения времени по ABAP-вызовам нужен подходящий runtime trace или профилировщик. Не делайте вывод о качестве запроса только по числу операторов: учитывайте длительность, повторяемость, селективность и число читаемых строк. Не сравнивайте trace-записи разных объёмов данных как равнозначные.
Различайте логические блокировки SAP и ожидания блокировок СУБД. Для SAP enqueue проверьте lock-объект, владельца и связанный процесс; для DB lock wait проследите блокирующую и ожидающую транзакции. Не удаляйте запись блокировки по возрасту без проверки владельца и незавершённой SAP LUW: снятие активной блокировки может нарушить целостность обработки. См. SAP Help: SAP Lock Concept и SAP Help: Lock Analysis.
4. Найдите стадию интеграции#
Для RFC, qRFC или IDoc сопоставьте одну и ту же операцию на обеих сторонах. Запишите направление и destination, сообщение/IDoc, имя очереди или LUW, первый ошибочный статус, текст протокола, время и фактический шаг прикладной обработки. Проверяйте соответствующий монитор и журналы отправителя, получателя и посредника; номер сообщения и время должны связывать записи в общую цепочку.
Для входящего IDoc SAP разделяет передачу/сохранение IDoc и последующую прикладную обработку. Поэтому отсутствие ошибки связи не означает, что документ обработан приложением. Найдите status record и его текст, затем подтвердите или опровергните создание требуемого бизнес-документа. См. SAP Help: Inbound Processing of IDocs.
Не переводите очередь в активное состояние, не удаляйте LUW и не запускайте массовую повторную обработку, пока не установлены причина первого сбоя, владелец данных и безопасное поведение повторного сообщения. Сообщения могут ждать предыдущую запись, зависеть от порядка обработки или требовать исправления данных/настроек на другой стороне.
5. Решите, допустим ли повтор#
При таймауте отправитель может не знать, успел ли получатель выполнить операцию до потери ответа. Перед повтором проверьте по бизнес-ключу и технической корреляции: создан ли документ, изменилось ли состояние и зафиксирован ли результат. Не полагайтесь только на отсутствие подтверждения у отправителя.
Повтор допустим, если контракт операции обеспечивает безопасную дедупликацию либо целевая сторона проверяет стабильный ключ запроса. Для финансовой операции сначала выясните, допускается ли повтор и как исключается дублирование; в противном случае дождитесь сверки состояния и согласования владельца процесса. Сохраняйте исходный payload/reference, номер попытки и связь с предыдущим сообщением. Переотправка с новым ключом может выглядеть для получателя как новая операция.
После исправления повторите тот же контрольный сценарий и сравните измерения до/после. Подтвердите доставку, прикладной статус, документ и финансовый результат; отдельно проверьте, что повтор не создал дубликат. Запишите исправленную причину, изменённый параметр или объект, способ проверки и остаточные ограничения.
Источники охватывают ABAP Platform 2025 FPS01 и входящую обработку IDoc для S/4HANA On-Premise 2025 FPS01. Интерфейсы мониторинга, доступные trace-инструменты и статусы зависят от продукта, релиза и способа интеграции. Ни реальный инцидент, ни клиентские журналы, очереди, блокировки или SAP runtime в рамках этой работы не проверялись.