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

Обмен сообщениями с использованием WebSphere MQ: практическое введение

9.3.8. Определение и использование псевдонимов локальных очередей

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

Атрибуты объекта псевдонима очереди определяют параметры по умолчанию, с которыми сообщения добавляются в очередь, на которую ссылается псевдоним (его целевую очередь). Так, ниже показано, что если настроить для псевдонима свойство persistent, то сообщения, добавленные через этот псевдоним, будут постоянными.

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

Выполните следующие действия.

  1. Щелкните правой кнопкой папку Queues в host1/qm1 и выберите New\Alias Queue – откроется страница " Enter a name " мастера New Alias Queue, помеченная красным крестиком.
  2. Введите queue1.persistent в поле Name.
  3. Щелкните Next, не щелкая Finish, – откроется окно настройки свойств нового псевдонима. В нем можно задать атрибуты объекта псевдонима очереди.
  4. Введите queue1 в поле Base queue.
    Примечание В результате этого действия будет задан атрибут "целевая очередь" ( target queue, TARGQ ) объекта псевдонима очереди.
  5. Введите в поле Description следующее значение:
    Redbook example alias to queue1: For persistent messages
  6. Установите значение Persistent для поля Persistence.
  7. Щелкните Finish, затем в окне сообщения AMQ4148 об успешном создании объекта щелкните OK.
  8. Щелкните правой кнопкой новую строку в таблице Queues (queue1.persistent), выберите Put Test Message и добавьте в очередь несколько сообщений.
  9. Обратите внимание, что значение атрибута "текущая длина" очереди queue1 увеличилось. Просмотрите сообщения в очереди queue1, как описано в "Обмен сообщениями с использованием WebSphere MQ: практическое введение" . Сообщения, добавленные в очередь через этот псевдоним, имеют атрибут Persistent (постоянные), тогда как ранее добавленные сообщения имеют атрибут Not Persistent (непостоянные).
Применение команд MQSC

Выполните следующие действия.

  1. Выполните следующую команду MQSC (с использованием runmqsc ):
    DEFINE QALIAS('queue1.persistent') TARGQ('queue1') DEFPSIST(YES) +
    DESCR('Redbook example alias to queue1: For persistent messages')
  2. Проверьте атрибуты объекта псевдонима очереди при помощи следующей команды MQSC:
    DISPLAY QALIAS('queue1.persistent') TARGQ DEFPSIST DESCR
    Примечание Помните, что имя queue1 должно быть в нижнем регистре, поэтому при определении объекта псевдонима очереди важно заключать аргумент TARGQ в одинарные кавычки.
  3. Выйдите из runmqsc командой END, затем добавьте к очереди несколько тестовых сообщений через псевдоним с помощью программы-примера для WebSphere MQ (передача пустой строки вызывает завершение программы):
    amqsput queue1.persistent
  4. Просмотрите сообщения в очереди, как описано в "Обмен сообщениями с использованием WebSphere MQ: практическое введение" . Обратите внимание, что новые сообщения являются постоянными, а прежние (добавленные напрямую, без псевдонима) – нет.

9.3.9. Завершение и перезапуск менеджера очередей

Ниже рассказывается, как остановить менеджер очередей с помощью WebSphere MQ Explorer или команды endmqm. Далее вы перезапустите менеджер очередей и просмотрите сообщения в очереди. Сообщения, являющиеся непостоянными, исчезнут, а постоянные – останутся в очереди.

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

Примечание Также возможна немедленная остановка менеджера очередей, при которой он завершает только текущие операции, но не выполняет больше никаких действий. Этот метод используется, если работа менеджера очередей не завершается слишком долго. Немедленное завершение работы менеджера очередей возможно и во время его "плавной" остановки.
Применение WebSphere MQ Explorer

Выполните следующие действия.

  1. Щелкните правой кнопкой значок менеджера очередей в папке Queue Managers и выберите команду Stop – откроется окно End Queue Manager.
  2. В этом окне оставьте переключатель в положении Controlled.
    Примечание Управляемое завершение (controlled end) менеджера очередей в WebSphere MQ Explorer аналогично завершению командой endmqm и выполняет "плавную" остановку с выводом окна состояния до окончания остановки менеджера очередей.
  3. Дождитесь завершения остановки (см. окно состояния). Заметьте, что теперь для менеджера очередей отображается значок остановленного локального менеджера очередей.
  4. Перезапустите менеджер очередей, щелкнув его правой кнопкой и выбрав команду Start. Дождитесь завершения запуска (см. окно состояния).
  5. Изучите содержимое очереди queue1. Обратите внимание, что в ней остались лишь постоянные сообщения, добавленные ранее при помощи псевдонима очереди.
Применение управляющих команд WebSphere MQ

Выполните следующие действия.

  1. Следующая команда завершает менеджер очередей, вызывая его "плавную" остановку:
    endmqm -w host1/qm1
    Примечание Команда endmqm требует указывать имя менеджера очередей, даже если она адресована менеджеру очередей по умолчанию. Это позволяет избежать случайной остановки менеджера очередей по умолчанию.

    Другой синтаксис команды endmqm имеет следующий вид:

    endmqm имя_менеджера_очередей

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

    Следующая команда немедленно останавливает менеджер очередей:

    endmqm -i имя_менеджера_очередей
  2. Для перезапуска менеджера очередей используется команда amqmdain qmgr start (в Windows) либо strmqm (в UNIX), см. "Обмен сообщениями с использованием WebSphere MQ: практическое введение" .
  3. Просмотрите сообщения в очереди queue1, как описано в "Обмен сообщениями с использованием WebSphere MQ: практическое введение" . Заметьте, что в очереди остались только постоянные сообщения.
Примечание Можно настроить отдельную локальную очередь так, чтобы при перезапуске менеджера очередей не потерять непостоянные сообщения. Для этого необходимо воспользоваться значением High атрибута класс NPM (NPMCLASS), который задают в секции Storage окна свойств очереди. Можно выполнить эти действия сейчас над очередью queue1.

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

Михаил Завалко
Михаил Завалко
Беларусь, Минск
Artem Bardakov
Artem Bardakov
Россия