Беларусь, Минск |
Технические основы организации очередей сообщений
6.2.6. Атрибуты по умолчанию и контроль полномочий
При открытии очереди WebSphere MQ производит проверку прав, определяя, уполномочена ли сущность выполнять действия, которые запросила. К обсуждению этой темы мы вернемся в "Защита инфраструктуры WebSphere MQ" "Предоставление доступа к ресурсам менеджеров очередей".
Также WebSphere MQ задает ряд значений по умолчанию для сообщений, которые впоследствии будут посланы открывшим очередь приложением. В дальнейшем приложение вправе заменить эти значения на свои собственные.
Такой контроль полномочий и значения по умолчанию основаны на атрибутах и разрешениях единственного объекта WebSphere MQ. Его можно считать первым среди объектов WebSphere MQ, к которым производится доступ при разрешении определенного приложением названия очереди.
Объект, который используется при отправлении сообщений, зависит от сочетания названий объекта и менеджера очередей объекта. Возможные комбинации показаны в табл. 6.1. В их число входят и сочетания для кластеров менеджеров очередей сообщений. Речь о таких кластерах пойдет в "Кластеры менеджеров очередей" "Кластеры менеджеров очередей".
Постоянство по умолчанию
Одним из часто используемых атрибутов объектов-очередей является атрибут постоянства по умолчанию ( DEFPSIST – default persistence). Установить, будет ли сообщение постоянным, приложение может при его размещении, задав параметр вызова MQPUT. Выбрав иной подход, приложение может оставить определение постоянства сообщений на откуп атрибуту соответствующей очереди.
Предположим, менеджер управляет локальной очередью local.psist с атрибутом DEFPSIST(YES). Пусть им же управляется псевдоним очереди alias.nonpsist с параметрами DEFPSIST(NO) и TARGQ('local.psist'). Сообщение, размещенное в очереди после открытия local.psist, окажется постоянным. Сообщение, размещенное после открытия alias.nonpsist, будет непостоянным. Между тем оба сообщения будут помещены в одну очередь.
6.2.7. Состояние и онлайновый мониторинг очередей
Локальные очереди – важнейший контролируемый менеджером ресурс, поскольку именно в них находятся все сообщения, которые он содержит.
Наблюдая за действиями обращающихся к менеджеру очередей приложений или выявляя проблемы, связанные с работой последних, администратор подчас испытывает потребность в сведениях о том, как происходит доступ приложений к конкретным очередям. Информация о потоке сообщений через определенную очередь также может оказаться полезной в обнаружении и разрешении проблем или при контроле производительности в ходе распределения ресурсов.
Удовлетворяя эту потребность, WebSphere MQ предоставляет данные мониторинга о состоянии каждой располагающейся на менеджере локальной очереди сообщений. В совокупности эти сведения, значительно расширенные в WebSphere MQ V6.0, таковы.
- Количество находящихся в очереди сообщений.
- Количество приложений, открывших очередь для просмотра или извлечения сообщений.
- Дата и время последнего извлечения приложением сообщения из очереди.
- Количество приложений, открывших очередь для размещения сообщений.
- Дата и время последнего размещения приложением сообщения в очереди.
- Количество находящихся в очереди незафиксированных сообщений. Таковыми считаются сообщения, которые были помещены в очередь или извлечены из нее в рамках незавершенной единицы работы.
- Сведения о каждом соединении с менеджером открывшего очередь приложения, включая:
- название приложения, которое установило соединение;
- идентификатор процесса приложения;
- контекст идентификационных данных, в котором выполняется приложение;
- действия, для выполнения которых приложение открыло очередь: просмотр сообщений, извлечение, размещение или запрос;
- если соединение с менеджером является удаленным и происходит по клиентскому подключению, то информация об указанном подключении;
- признак активности; выполняет ли приложение работу с менеджером;
- Информация о производительности использующих очередь приложений. В нее в том числе, входят:
- кратко- и долгосрочная оценка среднего времени, которое сообщение проводит до извлечения из очереди. дается в микросекундах, поскольку срок пребывания сообщения в очереди может быть очень мал;
- наибольший срок пребывания в очереди еще не покинувшего ее сообщения в секундах. в очередях с быстрым потоком сообщений большое значение может указывать на проблему с обработкой одного из поставленных в очередь сообщений.
Чтобы просмотреть информацию о состоянии очередей, используйте один из двух методов.
6.3. Применение триггеров
Поступающие в очереди сообщения представляют происходящие в системе события. В большинстве случаев эти сообщения требуют обработки.
Для автоматического запуска обработки менеджером очередей сообщений в WebSphere MQ предусмотрен механизм "триггеринга" (triggering). По характеру обработки ею может являться открытие канала передачи сообщений из транспортной очереди удаленному менеджеру или инициирование работы экземпляра приложения для того, чтобы произвести действие над одним или несколькими сообщениями (пакетом).
С учетом назначения очереди приходящее в нее сообщение может представлять или не представлять событие, которое требует обработки. Саму очередь можно настроить на порождение триггерных событий (trigger events), соответствующих тому, для каких целей она используется.
6.3.1. Порождение триггерных событий
На порождение триггерных событий очередь можно настроить различным образом.
- Для каждого сообщения.
Триггерное сообщение будет порождено для каждого поступающего в очередь сообщения. Для выбора такого режима триггеринга в локальной очереди сообщений задайте следующие параметры:
- активируйте триггеры: TRIGGER ;
- установите тип триггера "для каждого сообщения": TRIGTYPE(EVERY).
- Для первого сообщения.
Триггерное событие порождает первое сообщение, поступающее в очередь после того, как она опустеет. Обычно триггерное событие возникает, если для извлечения сообщений очередь открывается каким бы то ни было приложением. Однако если через указанный триггерный интервал приходит сообщение, а ни одно приложение не открыло очередь на извлечение, то возникнет новое триггерное событие. Для выбора такого режима работы триггеринга в локальной очереди сообщений задайте следующие параметры:
- Для заданной глубины.
Триггерное событие порождает то сообщение, при поступлении которого общее количество сообщений, находящихся в очереди, становится выше определенного порогового значения. Триггерное событие не возникает, если есть приложение, открывшее эту очередь для извлечения сообщений. Чтобы настроить этот механизм триггеринга, задайте следующие атрибуты локальной очереди:
- активируйте триггеры: TRIGGER ;
- установите тип триггера "для заданной глубины": TRIGTYPE(DEPTH) ;
- установите требуемый порог глубины очереди: TRIGDPTH(10).
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 для iSeries реализуют программы-слушатели каналов.