Саад Ахмад, исполнительный вице-президент Smart IS International

Обзор

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

В предыдущих версиях у нас были Агенты расписания, которые могли это сделать. В новых версиях у нас есть более сложная конструкция под названием jobs.

Наш подход

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

Мы рассматриваем проблему монитора приложений следующим образом:

  • Обнаружение проблем определенного типа. Возвратите несколько строк, где каждая строка указывает на проблему этого типа. Это может принимать форму команды MOCA или оператора SQL.
  • Для каждой из строк, возвращенных сверху, выполните код MOCA, чтобы исправить эту ситуацию.
  • При желании войдите в систему dlytrn
  • Опционально поднять оповещения EMS.
  • Предоставьте внешний интерфейс, чтобы опытные конечные пользователи могли управлять этими мониторами или добавлять новые.
  • Выполняйте их как одно задание, чтобы не повлиять на общий график задания.
  • Публикация прогресса в системе мониторинга заданий, разработанной Smart IS

Наше решение

Мы определяем эти мониторы в новой таблице:

Решение представлено в виде одной команды MOCA под названием «запустить монитор ossi», которая запланирована с использованием заданий MOCA. Мы определяем это для выполнения каждую минуту и ​​для управления отдельными заданиями, которые мы можем захотеть запускать реже — мы используем концепцию «Время с момента последнего запуска». Пользователи могут сами поддерживать эту информацию с помощью простого внешнего приложения:

Во всех реализациях WMS есть некоторые из этих заданий, которые со временем разрабатываются для решения типичных проблем. Например:

  • У нас часто бывают бесхозные записи invmov. Мы можем обнаружить такие записи, а затем удалить их.
  • Иногда у нас есть записи pckmov, которым нет соответствующих записей pckwrk. Мы можем обнаружить условие и убить такие записи pckmov.
  • Часто возникают ситуации, когда rescod не очищается. Мы можем обнаружить условие и запустить «освобождение местоположения ресурсов» для этих местоположений.
  • Часто требуется повторная обработка загрузок в статусе EERR.
  • Мы можем создать монитор для обнаружения какого-либо ненормального состояния и отправить электронное письмо группе пользователей с результатами запроса. Это решение проще, чем создание оповещения EMS, поскольку оно не требует процесса развертывания, а электронное письмо может содержать подробные результаты.

Заключение

Любой вид монитора приложений является обычным требованием в любой крупной системе, и RedPrairie/JDA WMS не является исключением. Приведенный выше шаблон проектирования может быть реализован в целом для любой большой системы. Он рассматривает проблему абстрактно и предлагает решение, простое в реализации, обслуживании и управлении.

Первоначально опубликовано на saadwmsblog.blogspot.com.