ПРАКТИКУМ И ДОКАЗАТЕЛЬСТВАP1L2

REF: диагностика производительности и сбоев интеграции

Общий маршрут расследования медленной обработки, блокировок и задержанной доставки: измеримый контекст, подходящий след, этап очереди и безопасный повтор.

Ревизия 1 Применимость к указанным контекстам Частичное покрытие Контекст: CTX-GENERALКонтекст: CTX-S4-ONPREM документальная опора: недостаточно данных
Справочный материал. Контракты данных, архитектурные решения и ограничения применения. Источники приведены в материалах, где используются внешние основания.

REF: диагностика производительности и сбоев интеграции#

Медленная операция, зависшая доставка и ошибка обработки требуют разных доказательств. До трассировки или повтора выясните, на каком участке и в каком временном интервале возникает симптом, сохраните корреляцию с исходным бизнес-событием и отделите техническую доставку от успешного финансового результата.

Эта статья задаёт общий порядок. Для деталей используйте материалы о контракте RFC, BAPI и IDoc, ABAP SQL, блокировках и update task, трассах и профилировании и фоновых заданиях и Application Log.

1. Зафиксируйте воспроизводимый контекст#

Для одного бизнес-случая сохраните:

  • SID/систему, клиента, релиз, приложение или endpoint и направление вызова;
  • время начала и конца с часовым поясом, узел/instance, пользователя и тип процесса;
  • бизнес-ключ документа, технический идентификатор сообщения или запроса, IDoc/очереди/job и корреляционный ID, если он предусмотрен;
  • входные параметры, объём строк, ожидаемый и фактический результат, полный код и текст ошибки;
  • номер попытки, время предыдущей попытки, статус отправки и приёма, статус прикладной обработки и созданный бизнес-документ, если есть;
  • параметры измерения: одинаковый ли сценарий, объём и состояние данных сравниваются.

Не помещайте пароли, токены и персональные данные в журналы расследования. Идентификаторы и выдержки храните по правилам доступа к продуктивным данным.

2. Разделите задержку по этапам#

Сначала оцените общее время и число обработанных объектов, затем разложите путь на доступные в данном интерфейсе интервалы:

  1. запрос сформирован и отправлен;
  2. сеть/RFC или посредник принял сообщение;
  3. сообщение попало в очередь либо было передано получателю;
  4. приложение начало обработку;
  5. ABAP, SQL, lock wait или update завершились;
  6. результат зафиксирован и подтверждён вызывающей стороне.

Измеряйте время ожидания и активное время отдельно, если система это показывает. Сравните несколько сопоставимых выполнений и объем данных. Один общий таймер не показывает, где тратится время; единичный медленный запуск также не доказывает устойчивую деградацию.

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 в рамках этой работы не проверялись.

Связанные материалы#

Источники и документация

  1. SAP Help: Recording Performance Data, ABAP Platform 2025 FPS01 ↗
  2. SAP Help: Profiling ABAP Code ↗
  3. SAP Help: SQL Trace Analysis, ABAP Platform 2025 FPS01 ↗
  4. SAP Help: Lock Analysis, ABAP Platform 2025 FPS01 ↗
  5. SAP Help: SAP Lock Concept ↗
  6. SAP Help: Inbound Processing of IDocs, S/4HANA On-Premise 2025 FPS01 ↗

Источники нужны для самостоятельной проверки. Примеры и интерпретации на сайте могут быть учебными упрощениями.