Показаны сообщения с ярлыком RDDIMPDP. Показать все сообщения
Показаны сообщения с ярлыком RDDIMPDP. Показать все сообщения

3 марта 2014 г.

Механизм импорта транспортных запросов. Решение проблем

В этом посте рассказывая про транспортную систему (TMS), я уже упоминал, что она используется не только для импорта транспортных запросов, но и для обновления системы пакетами поддержки (SAP Support Packages), и при установке дополнений в систему (add-ons).

Процесс импорта в SAP систему, в отличии от экспорта (деблокирования транспортных запросов), сложный многофазный процесс. Во время импорта используется большое количество утилит:
  • tp - утилита на уровне операционной системы, которая управляет всем процессом импорта, согласовывая работу всех инструментов;
  • R3trans - утилита на уровне операционной системы, которая умеет выгружать и загружать данные в любую базу данных, поддерживаемую компанией SAP AG;
  • RDDIMPDP - диспетчер импорта в SAP системе, запускающий фоновые RDD*-задания;
  • RDD*-задания - набор фоновых ABAP-отчетов, которые выполняют различные фазы импорта в SAP системе. 
Утилита tp согласовывает работу фоновых заданий через таблицы базы данных TRBAT и TRJOB. В первую из них утилита tp добавляет задания для диспетчера импорта (RDDIMPDP) в виде списка запросов на импорт с обозначением текущих фаз импорта. Во второй фиксируются номера и ID фоновых RDD*-заданий во время выполнения. После окончания импорта утилита tp удаляет записи из таблиц, считывая коды возврата. Таким образом, если в данный момент не происходит импорт запросов на перенос, то данные таблицы не должны содержать записи.

Основные шаги импорта перечислены в таблице на рисунке 1.

Рис. 1. Шаги по импорту транспортных запросов/пакетов поддержки в SAP систему.

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

Но вернемся к таблице. Для каждого шага утилитой tp вызывается своя утилита (поле "Инструмент"). Каждый инструмент в поддиректории /usr/sap/trans/tmp генерирует журнал выполнения (поле "Вид журнала"), который после завершения этапа переносится в поддиректорию /usr/sap/trans/log.

Диспетчер импорта (RDDIMPDP) запускается по событию SAP_TRIGGER_RDDIMPDP, которое инициализирует tp с уровня операционной системы через утилиту sapevt (рис. 2). Все RDD*-задания выполняются из под пользователя DDIC (рис. 3).


Рис. 2. Настройки задания RDDIMPDP.

Рис. 3. Пример выполненных фоновых RDD*-заданий при импорте запросов.

Планирование диспетчера импорта производится через отчет RDDNEWPP (000 мандант, пользователь DDIC, транзакция SE38 -> отчет RDDNEWPP -> Выполнить) (рис. 4).

Рис. 4. Планирование фонового задания RDDIMPDP.

Итак, если по какой-то причине импорт запросов/пакетов поддержки не происходит, то проверяем следующее:
  • журнал утилиты tp, который доступен по следующему пути "транзакция STMS -> Обзор -> Импорты -> Перейти к -> ПрогрУпрПереносом (TP): системный журнал (выбрать систему)" (или на уровне операционной системы файл /usr/sap/trans/log/SLOG*.SID);
  • не блокирован ли пользователь DDIC в 000 манданте;
  • в транзакции SM37 анализ запуска диспетчера импорта (RDDIMPDP) и RDD*-заданий;
  • на уровне операционной системы в поддиректориях /usr/sap/trans/tmp и
    /usr/sap/trans/log анализ журналов (рис. 1), определение сбойного шага импорта;
  • в транзакции SE16 проверка записей таблиц TRBAT и TRJOB.

Если перенос запроса завис на одном из этапов, за который отвечает одно из RDD*-заданий, то можно попробовать, войдя в 000 мандант под пользователем DDIC, выполнить программу RDDIMPDP через транзакцию SE38 вручную.

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

Дополнительная информация по данной теме:

23 июля 2009 г.

Решение проблем с транспортной системой


Самое гениальное, что есть в системе SAP и что кочует практически неизменным из версии в версию, это транспортная система (TMS). И действительно, зачем менять прозрачный и отлаженный механизм? :)
Но время от времени и в такой идеальной системе возникают проблемы. Как у меня сегодня утром. Перестали импортироваться запросы в тестовую систему. Перелопатил всё что можно, пока докопался до причины. Решил написать памятку для коллег. И так,
  • Транзакция STMS. Входите в очередь нужной системы и там изучаете пункты меню "Перейти к". Особенно пункты "Монитор импорта" и системный журнал программы tp.
  • Таблица E070L. Содержит номер последнего запроса в системе. Можно сделать скачок в будущее :) Подробности в SAP Note # 12799.
  • Таблица TMSTLOCKR. Хранит блокировки импортируемых в данный момент запросов.
  • Таблицы TRBAT и TRJOB. Временные записи во время импорта.
  • Фоновые задания RDDIMPDP. Смотреть выполняются или нет, почему. Планирование заданием RDDNEWPP в 000 манданте. Подробности в SAP Note # 26966.
  • На уровне ОС файловая система /usr/sap/trans и поддиректории. Полномочия, права, свободное место.
  • Процессы tp на уровне ОС.
Есть хороший курс по транспортной системе (TMS) - ADM325. Рекомендуется минимум прочитать самостоятельно.

P.S. А моя проблема была в старой записи в табличке TRJOB. Кстати, очистить такую рабочую табличку от всех записей можно через транзакцию SE14. Вписываете имя объекта. Нажимаете кнопку "Edit" и, выбрав "Delete data", жмёте "Activate and adjust database". Опля! И табличка пустая.


Автор: Шиболов Вячеслав Анатольевич