В данном разделе описывается усовершенствованная пакетная среда Microsoft Dynamics AX 2009 и приводятся соображения о планировании сервера пакетной обработки.

Обзор пакетной среды Microsoft Dynamics AX 2009

Важно понимать пакетную среду Microsoft Dynamics AX версии 4.0, чтобы полностью понять улучшения пакетной среды Microsoft Dynamics AX 2009.

Пакетная среда Microsoft Dynamics AX версии 4.0 работает следующим образом:

  1. Для обработки пакетных заданий пакетной среде требуется активный клиент Microsoft Dynamics AX для Windows. Нельзя просто отправить пакетное задание на обработку, подразумевая, что оно будет выполнено, поскольку оно не выполняется, если не открыт клиент.

  2. Пакетная среда не поддерживает параллельное выполнение. В результате пакетная среда выполняет пакетные задания только в одиночном потоке, независимо от числа доступных в кластере серверов AOS (Application Object Servers).

  3. Пакетная среда не позволяет создавать дерево зависимостей для различных задач, составляющих пакетное задание.

  4. Пакетная среда не позволяет выводить результаты на сервере. Это означает, что отчеты должны выполняться в интерактивном клиентском режиме, поскольку вывод результатов отчета не может быть сохранен или напечатан на сервере.

  5. Отсутствует консоль администратора для просмотра или управления всеми пакетными заданиями, выполняемыми в среде.

Пакетная среда Microsoft Dynamics AX 2009 была существенно усовершенствована для обеспечения действительно асинхронной (неинтерактивной), базирующейся на сервере пакетной среды, которая способна также выполнять несколько задач задания на нескольких экземплярах серверов AOS. Пакетная среда Microsoft Dynamics AX 2009 обеспечивает возможности связанных с сервером пакетов, не требуя наличия интерактивного клиента. Все новые пакетные задания Microsoft Dynamics AX 2009 используют новую пакетную среду. Большинство существующих пакетных заданий из предыдущих выпусков автоматически переносятся в новую пакетную среду. Пакетные задания на стороне клиента поддерживаются в Microsoft Dynamics AX 2009, но не рекомендуются. Задание может содержать как пакетные задачи на стороне клиента, так и задачи на стороне сервера. Чтобы обрабатывать задачи на стороне клиента, для задания с задачами на стороне клиента должен быть открыт клиент.

В следующем разделе описываются различные термины, используемые в пакетной среде Microsoft Dynamics AX 2009:

  • Пакетное задание: весь процесс, используемый для достижения определенной цели. Пакетное задание состоит из одной или нескольких пакетных задач. Пакетное задание может рассматриваться в качестве эквивалента журнала пакетных заданий Microsoft Dynamics AX версии 4.0.

  • Журнал пакетных заданий: набор процессов, составляющих пакетное задание. Каждая задача завершает часть пакетного задания. Задачи пакетного задания могут быть сложным образом связаны между собой. Например, пакетное задание по созданию накладных из заказов на продажу может содержать следующие задачи:

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

    • Получение обновленных данных по продажам из внешней системы.

    • Создание накладных.

Примечание Примечание

Понятие журнала пакетных заданий применимо только к Microsoft Dynamics AX версии 4.0. В приложении Microsoft Dynamics AX 2009 журнал пакетных заданий заменяется пакетным заданием.


  • Пакетные задачи: пакетная задача в Microsoft Dynamics AX 2009 может рассматриваться в качестве эквивалента пакетных заданий в Microsoft Dynamics AX версии 4.0. В Microsoft Dynamics AX версии 4.0 пакетные задания добавляются последовательно в пакетные группы. В Microsoft Dynamics AX 2009 имеется возможность добавлять в пакетное задание пакетные задачи с несколькими типами зависимостей. Имеется также возможность конфигурировать сервера AOS для одновременного выполнения нескольких потоков, где каждый поток выполняет отдельную задачу. Все пакетные задачи, ожидающие выполнения, могут быть выполнены любым доступным сервером AOS, настроенным в качестве сервера пакетной обработки. Способность разбивать пакетное задание на много подзаданий и выполнять эти подзадачи на всех доступных экземплярах серверов AOS помогает улучшить пропускную способность и сократить общее время выполнения.

  • Пакетная группа: атрибут пакетного задания, который позволяет администратору определить, на каком сервере AOS выполняется задание. При создании задания оно помещается в пакетную группу по умолчанию. Все сервера пакетной обработки настроены на обработку пакетной группы по умолчанию и на обработку ожидающих выполнения задач из любого задания. Имеется возможность создать именованную пакетную группу и связь между этой пакетной группой и определенными серверами AOS. После создания такой связи только настроенные серверы AOS будут обрабатывать задачи из этой именованной пакетной группы, и только из нее. При необходимости имеется также возможность добавить пакетную группу по умолчанию к настроенным серверам. В следующих примерах приводится обзор работы с тремя серверами AOS:

    1. Были настроены три сервера пакетной обработки AOS1, AOS2 и AOS3.

    2. По умолчанию все сервера пакетной обработки, настроенные на предыдущем этапе, будут обрабатывать задачи из всех пакетных заданий, в зависимости от числа доступных потоков.

    3. Создадим именованную пакетную группу BG1 и настроим ее для выполнения на серверах AOS2 и AOS3. Задачи из заданий группы BG1 будут выполняться только на серверах AOS2 и AOS3, в зависимости от числа доступных потоков. Сервер AOS1 не будет обрабатывать задачи из заданий группы BG1. В свою очередь, серверы AOS2 и AOS3 будут обрабатывать задачи только из группы BG1.

    4. Имеется возможность настроить серверы AOS2 и AOS3 для обработки задач из других пакетных групп, включая пакетную группу по умолчанию.

Соображения по настройке сервера пакетной обработки

При планировании сервера пакетной обработки в своей среде следует учитывать следующее:

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

  • Имеется возможность настроить все активные серверы AOS в качестве серверов пакетной обработки. Невозможно настроить выделенную подсистему балансировки нагрузки в качестве сервера пакетной обработки. Необходимо поместить сервер пакетной обработки в кластер, отличный от кластера активного сервера AOS, если требуется выделенный сервер пакетной обработки, который не работает в качестве активного сервера AOS. Требуется также убедиться, что пользователи не подключаются к выделенному серверу пакетной обработки.

  • Имеется возможность определить период времени, в течение которого сервер AOS будет действовать в качестве сервера пакетной обработки. Имеется также возможность задать число потоков, которые будет обрабатывать сервер пакетной обработки в этот период времени. Например, сервер пакетной обработки может обрабатывать только два потока за один период времени и двадцать потоков за другой период времени. Применяемое время основывается на времени часового пояса пользователя и не зависит от часового пояса местоположения сервера AOS. Период времени настраивается от времени начала и до времени завершения графика. Имейте ввиду, что сервер пакетной обработки также является активным сервером AOS, обслуживающим запросы от клиентов Microsoft Dynamics AX и других компонентов системы Microsoft Dynamics AX. Таким образом, определение периода времени для серверов пакетной обработки очень важно.

  • Мощность настраивается на основе максимального числа потоков, которые могут одновременно выполняться на данном сервере AOS. Каждый поток выполняет одну пакетную задачу. Имеется возможность добавить сложные зависимости между задачами. Имеется возможность выполнять эти задачи последовательно или параллельно, в зависимости от бизнес-логики и бизнес-требований. Все задачи без каких-либо зависимостей рассматриваются как параллельные задачи. Серверы AOS, настроенные в качестве серверов пакетной обработки, периодически проверяют наличие задач, ожидающих обработки. Пакетные серверы назначают каждую параллельную задачу потоку и запускают обработку этого потока. Это более подробно обсуждается в последующем обзоре данного раздела.

  • Имеется возможность создать пакетные группы и определить, на каком сервере AOS выполняется каждая пакетная группа.

  • Новые формы администрирования пакетных заданий обеспечивают простой способ создания и управления заданиями и задачами. Для получения дополнительных сведений по управлению пакетными заданиями см. справку администратора.

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

Примечание Примечание

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


Обзор

Предположим, что создано задание JOB1, имеющее семь задач TASK1, TASK2, TASK3, TASK4, TASK5, TASK6 и TASK7, как показано на следующей схеме.

Задачи связаны следующим образом:

  • TASK1 является первой задачей

  • TASK2 выполняется ПО ЗАВЕРШЕНИИ TASK1 (независимо от успешного или неудачного выполнения TASK1)

  • TASK3 выполняется ПРИ УДАЧНОМ ЗАВЕРШЕНИИ TASK2

  • TASK4 выполняется ПРИ УДАЧНОМ ЗАВЕРШЕНИИ TASK2

  • TASK5 выполняется ПРИ НЕУДАЧНОМ ЗАВЕРШЕНИИ TASK2

  • TASK6 выполняется ПРИ НЕУДАЧНОМ ЗАВЕРШЕНИИ TASK3

  • TASK7 выполняется ПРИ УДАЧНОМ ЗАВЕРШЕНИИ обеих задач TASK3 и TASK4

Предположим, что два сервера пакетной обработки, Batch1 и Batch2, настроены с мощностью в один поток для каждого. Сервер Batch1 проверяет наличие ожидающих выполнения задач, назначает задачу Task1 своему потоку и начинает выполнение. Хотя сервер Batch2 также доступен с одним потоком, задача Task2 ожидает выполнения, пока не будет завершена задача Task1.

Как только завершена задача Task1, задача Task2 готова для выполнения. Предположим, что в этот раз сервер Batch2 проверяет наличие ожидающих выполнения задач, назначает задачу Task2 своему потоку и начинает выполнение задачи Task2. Если Task2 завершена успешно, Task3 и Task4 ожидают выполнения. Предположим, что сервер Batch2 проверяет наличие ожидающих выполнения задач, назначает задачу Task3 своему потоку и начинает выполнение. Сервер Batch1 также проверяет наличие ожидающих выполнения задач, назначает задачу Task4 своему потоку и начинает выполнение. Если задачи Task3 и Task4 завершены успешно, один из серверов пакетной обработки выполнит задачу Task7.

Если задача Task2 завершается неудачно, один из серверов пакетной обработки выполнит задачу Task5. Если задача Task3 завершается неудачно, один из доступных серверов пакетной обработки выполнит задачу Task6.

Примечание Примечание

Имейте ввиду, что здесь используются серверы Batch1 и Batch2 для объяснения общих понятий. Все серверы пакетной обработки с доступными потоками начинают ожидающую выполнение задачу. Необходимо создать пакетную группу, чтобы определить или указать, какое пакетное задание и на каком сервере выполняется.


См. также