Обмен сообщениями с использованием WebSphere MQ: практическое введение
9.3.8. Определение и использование псевдонимов локальных очередей
Ниже рассказывается, как создать объект псевдонима очереди, ссылающийся на существующую очередь, но имеющий другое имя.
Атрибуты объекта псевдонима очереди определяют параметры по умолчанию, с которыми сообщения добавляются в очередь, на которую ссылается псевдоним (его целевую очередь). Так, ниже показано, что если настроить для псевдонима свойство persistent, то сообщения, добавленные через этот псевдоним, будут постоянными.
Применение WebSphere MQ Explorer
Выполните следующие действия.
- Щелкните правой кнопкой папку Queues в host1/qm1 и выберите New\Alias Queue – откроется страница " Enter a name " мастера New Alias Queue, помеченная красным крестиком.
- Введите queue1.persistent в поле Name.
- Щелкните Next, не щелкая Finish, – откроется окно настройки свойств нового псевдонима. В нем можно задать атрибуты объекта псевдонима очереди.
- Введите queue1 в поле Base queue.Примечание В результате этого действия будет задан атрибут "целевая очередь" ( target queue, TARGQ ) объекта псевдонима очереди.
- Введите в поле Description следующее значение:
Redbook example alias to queue1: For persistent messages
- Установите значение Persistent для поля Persistence.
- Щелкните Finish, затем в окне сообщения AMQ4148 об успешном создании объекта щелкните OK.
- Щелкните правой кнопкой новую строку в таблице Queues (queue1.persistent), выберите Put Test Message и добавьте в очередь несколько сообщений.
- Обратите внимание, что значение атрибута "текущая длина" очереди queue1 увеличилось. Просмотрите сообщения в очереди queue1, как описано в "Обмен сообщениями с использованием WebSphere MQ: практическое введение" . Сообщения, добавленные в очередь через этот псевдоним, имеют атрибут Persistent (постоянные), тогда как ранее добавленные сообщения имеют атрибут Not Persistent (непостоянные).
Применение команд MQSC
Выполните следующие действия.
- Выполните следующую команду MQSC (с использованием runmqsc ):
DEFINE QALIAS('queue1.persistent') TARGQ('queue1') DEFPSIST(YES) + DESCR('Redbook example alias to queue1: For persistent messages')
- Проверьте атрибуты объекта псевдонима очереди при помощи следующей команды MQSC:
DISPLAY QALIAS('queue1.persistent') TARGQ DEFPSIST DESCR
Примечание Помните, что имя queue1 должно быть в нижнем регистре, поэтому при определении объекта псевдонима очереди важно заключать аргумент TARGQ в одинарные кавычки. - Выйдите из runmqsc командой END, затем добавьте к очереди несколько тестовых сообщений через псевдоним с помощью программы-примера для WebSphere MQ (передача пустой строки вызывает завершение программы):
amqsput queue1.persistent
- Просмотрите сообщения в очереди, как описано в "Обмен сообщениями с использованием WebSphere MQ: практическое введение" . Обратите внимание, что новые сообщения являются постоянными, а прежние (добавленные напрямую, без псевдонима) – нет.
9.3.9. Завершение и перезапуск менеджера очередей
Ниже рассказывается, как остановить менеджер очередей с помощью WebSphere MQ Explorer или команды endmqm. Далее вы перезапустите менеджер очередей и просмотрите сообщения в очереди. Сообщения, являющиеся непостоянными, исчезнут, а постоянные – останутся в очереди.
При этом будет выполнена т. н. "плавная" остановка менеджера очередей, во время которой он уведомляет об остановке все подключенные к нему приложения, но не прекращает принимать от них запросы.
Применение WebSphere MQ Explorer
Выполните следующие действия.
- Щелкните правой кнопкой значок менеджера очередей в папке Queue Managers и выберите команду Stop – откроется окно End Queue Manager.
- В этом окне оставьте переключатель в положении Controlled.
- Дождитесь завершения остановки (см. окно состояния). Заметьте, что теперь для менеджера очередей отображается значок остановленного локального менеджера очередей.
- Перезапустите менеджер очередей, щелкнув его правой кнопкой и выбрав команду Start. Дождитесь завершения запуска (см. окно состояния).
- Изучите содержимое очереди queue1. Обратите внимание, что в ней остались лишь постоянные сообщения, добавленные ранее при помощи псевдонима очереди.
Применение управляющих команд WebSphere MQ
Выполните следующие действия.
- Следующая команда завершает менеджер очередей, вызывая его "плавную" остановку:
endmqm -w host1/qm1
Примечание Команда endmqm требует указывать имя менеджера очередей, даже если она адресована менеджеру очередей по умолчанию. Это позволяет избежать случайной остановки менеджера очередей по умолчанию.Другой синтаксис команды endmqm имеет следующий вид:
endmqm имя_менеджера_очередей
При вызове без дополнительных параметров эта команда инициирует "плавную" остановку и сразу возвращает управление. Команда dspmq позволяет увидеть, когда остановится менеджер очередей.
Следующая команда немедленно останавливает менеджер очередей:
endmqm -i имя_менеджера_очередей
- Для перезапуска менеджера очередей используется команда amqmdain qmgr start (в Windows) либо strmqm (в UNIX), см. "Обмен сообщениями с использованием WebSphere MQ: практическое введение" .
- Просмотрите сообщения в очереди queue1, как описано в "Обмен сообщениями с использованием WebSphere MQ: практическое введение" . Заметьте, что в очереди остались только постоянные сообщения.
Однако такие настройки не эквивалентны использованию постоянных сообщений. WebSphere MQ не регистрирует в журнале операции над непостоянными сообщениями и не восстанавливает их после сбоев менеджера очередей. Следовательно, сообщения в очередях класса High все равно могут быть потеряны. Поэтому данные, критичные для бизнеса, непременно должны быть помечены как постоянные.