Обмен сообщениями с использованием WebSphere MQ: практическое введение
В этой лекции обсуждаются следующие темы:
- Обзор глав с практическими заданиями
- Настройка окружения
- Обмен сообщениями с использованием локального менеджера очередей
- Создание службы обработки запросов и ответов на основе очереди
- Рассылка сообщений по подписке в WebSphere MQ с использованием JMS
9.1. Обзор глав с практическими заданиями
Этот курс содержит практическое введение в очереди сообщений WebSphere MQ, которое разбито на две лекции.
- В этой лекции вы научитесь создавать и администрировать менеджеры очередей, обеспечивающие доступ к службам обработки сообщений. Эти службы доступны посредством менеджеров очередей и поддерживают различные модели обмена сообщениями: межточечный обмен либо рассылку сообщений по подписке.
- В "Построение инфраструктуры WebSphere MQ: практическое руководство" вы научитесь связывать менеджеры очередей с использованием TCP/IP-сетей как в центрально-лучевую (hub-and-spoke) инфраструктуру, так и в кластеры с целью предоставления доступа к этим службам.
При изучении материалов введения вы будете пользоваться административными интерфейсами и примерами приложений из состава WebSphere MQ.
9.1.1. Администрирование менеджеров очередей
Многие административные задачи решаются с использованием WebSphere MQ Explorer либо интерфейса сценариев MQSC. Ниже приводятся пошаговые инструкции для обоих случаев.
Если у вас нет опыта работы с WebSphere MQ, рекомендуем воспользоваться WebSphere MQ Explorer. По мере накопления знаний можно приступать к освоению MQSC – так вы научитесь создавать сценарии для решения описанных в этой главе задач. Так, процедуры контроля изменений могут требовать сценариев MQSC для внесения любых изменений в производственной среде.
Следите, чтобы в командах MQSC значения атрибутов и имена объектов, содержащие символы в нижнем регистре, были заключены в одинарные кавычки. Регулярное применение кавычек – общая рекомендация при работе с MQSC, позволяющая избежать путаницы.
9.1.2. Программы-примеры в WebSphere MQ
С WebSphere MQ поставляется множество программ-примеров, как в виде исходного кода, так и в прекомпилированном, готовом к применению виде. В этой книге приводятся примеры на языке программирования С, использующие интерфейс очередей сообщений (MQI) для демонстрации межточечного обмена сообщениями. Имеются также аналогичные примеры на других языках программирования.
Примеры на языке Java, использующие JMS – стандартный интерфейс прикладного программирования (API), – иллюстрируют обмен сообщениями по механизму публикации-подписки. По большому счету то же верно для клиентов IBM Message Service (XMS).
Обмен сообщениями по подписке также может быть реализован при помощи соответствующих команд WebSphere MQ, адресованных брокеру публикации-подписки WebSphere MQ. Это возможно с использованием любого из API для межточечного обмена сообщениями, поддерживаемого WebSphere MQ.
Прежде чем приступать к созданию решений на основе WebSphere MQ, прикладным программистам рекомендуется изучить прилагаемые примеры исходного кода на С либо других языках программирования. Эти примеры послужат хорошей отправной точкой при разработке и тестировании таких решений.
9.2. Настройка окружения
В этой главе предполагается, что вы работаете на сервере под управлением ОС Windows или Linux с WebSphere MQ V6.0. Впрочем, все задачи (за исключением связанных с WebSphere MQ Explorer) могут быть выполнены удаленно на UNIX-сервере с WebSphere MQ V6.0.
9.2.1. Установка WebSphere MQ V6.0
Подробнее об установке сервера WebSphere MQ см. в руководстве WebSphere MQ V6.0 Quick Beginnings для соответствующей платформы:
- WebSphere MQ для Windows V6.0 Quick Beginnings, GC34-6476
- WebSphere MQ для Linux V6.0 Quick Beginnings, GC34-6480
Установите все необходимые и дополнительные компоненты, сделайте необходимые настройки.
9.2.2. Привилегии администратора WebSphere MQ
Учетная запись, под которой вы входите в систему, должна иметь привилегии администратора WebSphere MQ.
- В Windows: ваша учетная запись должна быть членом одной из следующих групп:
- Administrators,
- mqm.
- В UNIX: ваша учетная запись должна быть членом группы
- mqm.
9.2.3. Доступ к примерам WebSphere MQ
Каталог с примерами WebSphere MQ должен быть в пути поиска, заданном соответствующей переменной окружения в ОС. При установке WebSphere MQ в Windows это делается автоматически.
Примеры WebSphere MQ устанавливаются в следующий каталог.
- В Windows: C:\Program Files\IBM\WebSphere MQ\Tools\c\Samples\Bin
- В UNIX (кроме IBM AIX 5L): /opt/mqm/samp/bin – добавьте этот путь к пути поиска текущего терминального сеанса, например так:
PATH=$PATH:/opt/mqm/samp/bin export PATH
- В IBM AIX 5L: /usr/mqm/samp/bin – добавьте этот путь к пути поиска текущего терминального сеанса, например так:
PATH=$PATH:/usr/mqm/samp/bin export PATH
9.2.4. Замечания о Java
Действия, описанные в разделе 9.5, требуют установки пакета Java Development Kit (JDK), расположенного в каталоге prereqs на установочном носителе WebSphere MQ V6.0. Если установить JDK невозможно, упражнения, посвященные обмену сообщениями по подписке, следует пропустить.
9.3. Обмен сообщениями с помощью локального менеджера очередей
В этом разделе вы познакомитесь с графическим интерфейсом, а также с интерфейсом командной строки, применяемым для создания, запуска, завершения и удаления менеджеров очередей. Кроме того, вы научитесь добавлять и извлекать из очереди тестовые сообщения, а также просматривать содержимое очередей с использованием WebSphere MQ Explorer и программ-примеров WebSphere MQ.
Ниже предполагается, что вы знакомы с интерфейсами и примерами из этого раздела.
9.3.1. Создание менеджера очередей по умолчанию
Ниже показано, как создать на компьютере менеджер очередей и назначить его менеджером очередей по умолчанию.
Это делается при помощи мастера WebSphere MQ Explorer Create Queue Manager либо команды crtmqm WebSphere MQ.
Применение WebSphere MQ Explorer
Выполните следующие действия.
- Щелкните правой кнопкой папку Queue Managers в навигаторе и выберите New\Queue Manager – откроется страница Enter Basic Values (Step 1) мастера Create Queue Manager.
- Введите host1/qm1 в поле Queue manager name.
- Установите параметр Make this the default queue manager.
- Для остальных параметров примите значения по умолчанию и щелкните Next, не щелкая кнопку Finish, – откроется страница Enter log values (Step 2).
- Оставьте на этой странице значения по умолчанию и щелкните Next, не щелкая Finish, – откроется страница Enter configuration options (Step 3).
- Снимите флажок Start queue manager.Примечание Флажок Start queue manager позволяет автоматически выполнить действия, описанные в "Обмен сообщениями с использованием WebSphere MQ: практическое введение" .
Параметр Auto start менеджера очередей поддерживается только в Windows и позволяет автоматически запустить менеджер очередей при перезагрузке компьютера.
- Для остальных полей оставьте значения по умолчанию и щелкните Next, не щелкая Finish, – откроется страница Enter listener options (Step 4).
- Снимите флажок Create listener configured for TCP/IP.Примечание Этот флажок позволяет автоматически выполнить действия, описанные в "Построение инфраструктуры WebSphere MQ: практическое руководство" .
- Для остальных полей оставьте значения по умолчанию и щелкните Next, не щелкая Finish, – откроется страница Enter explorer options (Step 5).
- Оставьте значения по умолчанию на этой странице и щелкните Finish.
- Откроется окно Creating Queue Manager "host1/qm1" с сообщением о состоянии.
- Завершив это упражнение, убедитесь, что в окне навигатора в папке Queue Managers отображается менеджер очередей в виде значка, соответствующего остановленному локальному менеджеру очередей.
Применение управляющих команд WebSphere MQ
Выполните следующую команду, чтобы создать менеджер очередей в конфигурации по умолчанию и сделать его менеджером очередей по умолчанию на данном компьютере:
crtmqm -q host1/qm1
Эта команда генерирует следующий вывод:
WebSphere MQ queue manager created. Creating or replacing default objects for host1/qm1. Default objects statistics : 43 created. 0 replaced. 0 failed. Completing setup. Setup completed.
Следующая команда позволяет проверить, создан ли менеджер очередей:
dspmq
Эта команда генерирует следующий вывод:
QMNAME(host1/qm1) STATUS(Ended immediately)
9.3.2. Запуск менеджера очередей по умолчанию
Ниже показано, как запустить созданный ранее менеджер очередей. Это делается с помощью WebSphere MQ Explorer либо управляющих команд amqmdain/strmqm WebSphere MQ.
В управляющих командах WebSphere MQ не обязательно указывать имя менеджера очередей, поскольку эти команды адресованы менеджеру очередей по умолчанию.
Применение WebSphere MQ Explorer
Щелкните правой кнопкой менеджер очередей host1/qm1 в окне навигатора и выберите Start – откроется окно, похожее на то, что отображалось во время создания менеджера очередей.
Завершив это упражнение, убедитесь, что в окне навигатора в папке Queue Managers отображается менеджер очередей в виде значка, соответствующего работающему локальному менеджеру очередей.
Применение управляющих команд WebSphere MQ
Команды для UNIX и Windows отличаются следующим:
- Windows:
amqmdain qmgr start
Примечание Эта команда позволяет запустить менеджер очередей так, чтобы при выходе из системы и входе в нее он не останавливался. В UNIX аналогичная команда работает, но при выходе из системы запущенный ей менеджер очередей завершается.В WebSphere MQ для Windows V5.3 используйте следующую команду:
amqmdain start host1/qm1
- UNIX:
strmqm
Эта команда генерирует следующий вывод:
WebSphere MQ queue manager 'host1/qm1' starting. 5 log records accessed on queue manager 'host1/qm1' during the log replay phase. Log replay for queue manager 'host1/qm1' complete. Transaction manager state recovered for queue manager 'host1/qm1'. WebSphere MQ queue manager 'host1/qm1' started.
AMQ8118: WebSphere MQ queue manager does not exist.
Чтобы проверить это либо сделать текущий менеджер очередей менеджером по умолчанию, выполните следующие действия.
- Применение WebSphere MQ Explorer (в Windows):
- применение файла mqs.ini в UNIX:
- откройте файл mqs.ini в текстовом редакторе, таком как vi или emacs. Файл mqs.ini находится в каталоге
/var/mqm/mqs.ini
- найдите строку
DefaultQueueManager:
- если эта строка не существует, добавьте ее в конце файла;
- затем добавьте следующую строку:
Name=host1/qm1
- откройте файл mqs.ini в текстовом редакторе, таком как vi или emacs. Файл mqs.ini находится в каталоге