Опубликован: 10.06.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Компания IBM
Лекция 6:

Технические основы организации очередей сообщений

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

6.2.6. Атрибуты по умолчанию и контроль полномочий

При открытии очереди WebSphere MQ производит проверку прав, определяя, уполномочена ли сущность выполнять действия, которые запросила. К обсуждению этой темы мы вернемся в "Защита инфраструктуры WebSphere MQ" "Предоставление доступа к ресурсам менеджеров очередей".

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

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

Объект, который используется при отправлении сообщений, зависит от сочетания названий объекта и менеджера очередей объекта. Возможные комбинации показаны в табл. 6.1. В их число входят и сочетания для кластеров менеджеров очередей сообщений. Речь о таких кластерах пойдет в "Кластеры менеджеров очередей" "Кластеры менеджеров очередей".

Таблица 6.1. Объект WebSphere MQ для установки значений по умолчанию и проверки наличия полномочий
Название объекта Название менеджера очередей объекта Объект WebSphere MQ для установки значений по умолчанию и проверки наличия полномочий
Название объекта – локальной, модельной, удаленной очереди или их псевдонима, определенное на локальном менеджере очередей сообщений Пусто или название локального менеджера Объект WebSphere MQ, имеющий заданное название
Любое Название удаленного менеджера, при разрешении которого может быть установлено название транспортной очереди Транспортная очередь
Название очереди, совместно используемой тем кластером менеджеров очередей сообщений, в который входит текущий менеджер Пусто Проверка наличия полномочий производится в отношении объекта
SYSTEM.CLUSTER.TRANSMIT.QUEUE
Источником значений по умолчанию является определение объекта-очереди под управлением удаленного менеджера. Значения по умолчанию можно увидеть, отобразив атрибуты записи кластерной очереди, к примеру воспользовавшись командой DISPLAY QCLUSTER из состава MQSC
Постоянство по умолчанию

Одним из часто используемых атрибутов объектов-очередей является атрибут постоянства по умолчанию ( DEFPSIST – default persistence). Установить, будет ли сообщение постоянным, приложение может при его размещении, задав параметр вызова MQPUT. Выбрав иной подход, приложение может оставить определение постоянства сообщений на откуп атрибуту соответствующей очереди.

Предположим, менеджер управляет локальной очередью local.psist с атрибутом DEFPSIST(YES). Пусть им же управляется псевдоним очереди alias.nonpsist с параметрами DEFPSIST(NO) и TARGQ('local.psist'). Сообщение, размещенное в очереди после открытия local.psist, окажется постоянным. Сообщение, размещенное после открытия alias.nonpsist, будет непостоянным. Между тем оба сообщения будут помещены в одну очередь.

Примечание Приведенная ситуация лишь пример, не являющийся рекомендуемой практикой. Наибольшую эффективность WebSphere MQ демонстрирует при условии, что в очереди содержатся исключительно постоянные или непостоянные сообщения.

6.2.7. Состояние и онлайновый мониторинг очередей

Локальные очереди – важнейший контролируемый менеджером ресурс, поскольку именно в них находятся все сообщения, которые он содержит.

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

Удовлетворяя эту потребность, WebSphere MQ предоставляет данные мониторинга о состоянии каждой располагающейся на менеджере локальной очереди сообщений. В совокупности эти сведения, значительно расширенные в WebSphere MQ V6.0, таковы.

  • Количество находящихся в очереди сообщений.
  • Количество приложений, открывших очередь для просмотра или извлечения сообщений.
  • Дата и время последнего извлечения приложением сообщения из очереди.
  • Количество приложений, открывших очередь для размещения сообщений.
  • Дата и время последнего размещения приложением сообщения в очереди.
  • Количество находящихся в очереди незафиксированных сообщений. Таковыми считаются сообщения, которые были помещены в очередь или извлечены из нее в рамках незавершенной единицы работы.
  • Сведения о каждом соединении с менеджером открывшего очередь приложения, включая:
    • название приложения, которое установило соединение;
    • идентификатор процесса приложения;
    • контекст идентификационных данных, в котором выполняется приложение;
    • действия, для выполнения которых приложение открыло очередь: просмотр сообщений, извлечение, размещение или запрос;
    • если соединение с менеджером является удаленным и происходит по клиентскому подключению, то информация об указанном подключении;
    • признак активности; выполняет ли приложение работу с менеджером;
  • Информация о производительности использующих очередь приложений. В нее в том числе, входят:
    • кратко- и долгосрочная оценка среднего времени, которое сообщение проводит до извлечения из очереди. дается в микросекундах, поскольку срок пребывания сообщения в очереди может быть очень мал;
    • наибольший срок пребывания в очереди еще не покинувшего ее сообщения в секундах. в очередях с быстрым потоком сообщений большое значение может указывать на проблему с обработкой одного из поставленных в очередь сообщений.
Примечание Полученная в ходе контроля очередей информация о производительности является новшеством WebSphere MQ V6.0 и называется информацией онлайнового мониторинга (online monitoring). Используя атрибут MONQ объекта-менеджера очередей сообщений, вы можете наблюдать за всеми очередями, которыми менеджер управляет; используя же атрибут MONQ очереди – за требуемым набором локальных очередей. Подробности см. в руководстве Monitoring WebSphere MQ, SC34-6593. Или нажмите клавишу F1 и выберите раздел Online Monitoring страницы свойств, предварительно выделив менеджер очередей сообщений в WebSphere MQ Explorer.

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

  • MQSC-команду DISPLAY QSTATUS.
  • WebSphere MQ Explorer. Обычно этот способ просмотра самый удобный:
    • щелкните по папке Queues конкретного менеджера очередей сообщений в навигаторе WebSphere MQ Explorer;
    • щелкните правой кнопкой мыши по интересующей вас локальной очереди таблицы, представленной на панели содержимого Queues ;
    • выберите пункт меню Status.

6.3. Применение триггеров

Поступающие в очереди сообщения представляют происходящие в системе события. В большинстве случаев эти сообщения требуют обработки.

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

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

6.3.1. Порождение триггерных событий

На порождение триггерных событий очередь можно настроить различным образом.

  • Для каждого сообщения.

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

    • активируйте триггеры: TRIGGER ;
    • установите тип триггера "для каждого сообщения": TRIGTYPE(EVERY).
  • Для первого сообщения.

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

    • активируйте триггеры: TRIGGER ;
    • установите тип триггера "для первого сообщения": TRIGTYPE(FIRST) ;
    • установите являющийся атрибутом объекта-менеджера очередей сообщений триггерный интервал, равный необходимому вам значению в миллисекундах: TRIGINT(5000).
  • Для заданной глубины.

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

    • активируйте триггеры: TRIGGER ;
    • установите тип триггера "для заданной глубины": TRIGTYPE(DEPTH) ;
    • установите требуемый порог глубины очереди: TRIGDPTH(10).
Примечание Для того чтобы триггерное событие произошло, должна быть выполнена совокупность условий. Если триггерное событие не возникает, как запланировано, рекомендуем поочередно проверить выполнение всех условий, что даст возможность установить причину вашей проблемы. Полностью условия перечислены в разделе "Starting WebSphere MQ applications using triggers" руководства WebSphere MQ Application Programming Guide, SC34-6595.

6.3.2. Очереди инициации и триггерные сообщения

Когда в системе происходит триггерное событие, в очередь инициации (initiation queue) помещается сообщение. Это сообщение называется триггерным сообщением (trigger message). Название очереди, в которой будет размещено триггерное сообщение, содержится в атрибуте "очередь инициации" ( INITQ ) объекта – локальной очереди сообщений.

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

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

  • Название очереди.

    Название той очереди, откуда событие было порождено.

  • Подробные данные о запускаемом приложении.

    Подробности запуска приложений зависят от конкретной платформы. Для описания таковых в WebSphere MQ имеются объекты типа PROCESS. Их атрибуты содержат достаточно информации для запуска конкретного приложения в операционной системе. Если в атрибуте PROCESS очереди, которая породила событие, содержится название существующего объекта PROCESS, то все его атрибуты будут размещены в триггерном сообщении.

  • Данные триггера.

    Специальные данные из атрибута "данные триггера" ( TRIGDATA ) очереди, породившей событие.

6.3.3. Триггерный монитор

Приложения, ожидающие поступления сообщений в помеченную как очередь инициации локальную очередь сообщений, называют триггерными мониторами (trigger monitor).

Триггерные мониторы в WebSphere MQ

В составе WebSphere MQ есть триггерные мониторы для каждой платформы. Их функция – поддержка базовых возможностей выполнения приложений согласно определению PROCESS при каждом возникновении триггерного события. Его детальное описание передается приложению при запуске.

Подробнее о триггерных мониторах в WebSphere MQ читайте раздел "Writing Web Sphere MQ applications" руководства WebSphere MQ Application Programming Guide, SC34-6595.

Инициатор распределенных каналов WebSphere MQ

Инициатор распределенных каналов WebSphere MQ – это процесс WebSphere MQ, по умолчанию автоматически запускаемый менеджером очередей сообщений. Это особый триггерный монитор, открывающий каналы сообщений с названиями, которые содержатся в атрибутах TRIGDATA транспортных очередей, настроенных на применение триггеров. Подробности см. в "Взаимодействие менеджеров очередей и клиентские подключения в WebSphere MQ" "Инициирование канала".

Примечание Не смешивайте инициатор каналов в этом разделе с инициатором каналов в WebSphere MQ для z/OS из "Менеджеры очередей: общее представление и настройка" "Инициатор каналов WebSphere MQ для z/OS".

Открытие каналов сообщений в WebSphere MQ для z/OS и WebSphere MQ для iSeries реализуют программы-слушатели каналов.

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >
Михаил Завалко
Михаил Завалко
Беларусь, Минск
Artem Bardakov
Artem Bardakov
Россия