Компания IBM
Опубликован: 14.12.2004 | Доступ: свободный | Студентов: 1531 / 139 | Оценка: 4.36 / 3.98 | Длительность: 16:32:00
ISBN: 978-5-9556-0031-4
Специальности: Системный архитектор
Лекция 5:

Создание интерфейсов передачи сообщений. Триггеринг

< Лекция 4 || Лекция 5: 12345 || Лекция 6 >

Процессы WebSphere MQ, триггеринг и автоматический старт каналов

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

Процесс WebSphere MQ это объект, содержащий информацию о прикладной программе, которая может быть выполнена на определенных условиях при использовании механизма триггеринга . Форма для создания процесса изображена на рис. 4.10.

Форма для создания процесса WebSphere MQ

Рис. 4.10. Форма для создания процесса WebSphere MQ

Process Definition Name - имя процесса. Уникально в пределах одного менеджера и должно отличаться от его имени. Может совпадать с именами других объектов менеджера.

Description - описание процесса.

Application Type - тип приложения. Зависит от операционной системы, на которой установлен менеджер очередей.

Application Identifier - имя выполняемой программы с указанием пути.

Environment Data - данные, которые могут быть переданы сервису Trigger Monitor.

User Data - данные, которые могут быть переданы выполняемой программе.

Для запуска процесса необходимы условия:

  • сообщения поступают в очередь;
  • приоритет сообщения не ниже приоритета, указанного в атрибуте Trigger Message Priority ;
  • количество сообщений в очереди находится в соответствии с атрибутом Trigger Type ;
  • существует очередь инициализации;
  • атрибут Trigger Control установлен в значение On ;
  • существует и стартована служба сервиса WebSphere MQ Trigger monitor, в параметрах которой указана соответствующая очередь инициализации или запущена программа runmqtrm .

Предположим, что необходимо информировать пользователя о приходе каждого сообщения в очередь FOR_USER_INF.Q. Рассмотрим шаги для реализации поставленной задачи:

  1. Создать очередь инициализации for_user_init.
  2. Создать файл c:\temp\trig.bat, содержащий строку

    net send user1 Пришло сообщение в очередь FOR_USER_INF.Q

    который будет посылать сообщения пользователю user1,

  3. Создать процесс NET_SEND.P с атрибутами:
    • Process Definition Name - NET_SEND.P ;
    • Application Type - Windows NT ;
    • Application Identifier - c:\temp\trig.bat.
  4. Создать локальную очередь FOR_USER_INF.Q с атрибутами
    • Queue Name - FOR_USER_INF.Q ;
    • Trigger Control - On ;
    • Trigger Type - Every ;
    • Trigger Depth - 1 ;
    • Trigger Message Priority - 0 ;
    • Initiation Queue Name - for_user_init ;
    • Process Name - NET_SEND.P.
  5. Создать службу сервиса WebSphere MQ Trigger Monitor:
    • Запустить утилиту создания и управления сервисами WebSphere MQ;
    • Вызвать контекстное меню, правой кнопкой мыши щелкнув по имени менеджера, выбрать пункт Create, далее Trigger Monitor ;
    • Ввести имя очереди инициализации - for_user_init ;
    • После нажатия на кнопку OK в правой части консоли WebSphere MQ Services появится созданный объект Trigger Monitor (рис. 4.11);
      Консоль WebSphere MQ Services

      увеличить изображение
      Рис. 4.11. Консоль WebSphere MQ Services
    • Выполнить старт Trigger Monitor, нажав на кнопку "Старт", расположенную на панели управления.
  6. Поместить тестовое сообщение в очередь FOR_USER_INF.Q и убедиться, что сетевое сообщение с текстом "Пришло сообщение в очередь FOR_USER_INF.Q" отправлено пользователю user1.

    Вместо создания службы сервиса WebSphere MQ Trigger Monitor можно выполнить программу runmqtrm . Синтаксис команды

    runmqtrm -q for_user_init

В этом случае процесс NET_SEND.P будет выполняться только тогда, когда программа runmqtrm запущена.

< Лекция 4 || Лекция 5: 12345 || Лекция 6 >