Беларусь, Минск |
Построение инфраструктуры WebSphere MQ: практическое руководство
В этой лекции обсуждаются следующие темы:
- Настройка окружения
- Подключение к менеджеру очередей в режиме клиента
- Построение центрально-лучевой инфраструктуры
- Создание кластеров менеджеров очередей
10.1. Настройка окружения
Для выполнения упражнений из этой лекции необходимо то же окружение, что было настроено для изучения "Обмен сообщениями с использованием WebSphere MQ: практическое введение" .
Единственное дополнение – TCP/IP-сеть, соединяющая компьютеры, на которых работают приложения и менеджеры очередей.
В этой лекции предполагается, что в сети может быть несколько компьютеров с разными хост-именами и IP-адресами. Впрочем, любое из приведенных ниже упражнений можно выполнить и на изолированной рабочей станции под управлением Windows или Linux, то есть наличие сетевого подключения не обязательно.
localhost
host1.example.com host2.example.com
10.2. Подключение к менеджеру очередей в режиме клиента
В этом разделе рассказывается, как приложения подключаются к удаленным менеджерам очередей, получая доступ к тем же функциям, что и приложения, подключенные к локальным менеджерам очередей.
Ниже демонстрируется получение доступа к менеджеру очередей и его администрирование на примере менеджера host1/echo.hub, созданного в "Обмен сообщениями с использованием WebSphere MQ: практическое введение" . Эти инструкции позволят получить доступ к службе, функционирующей в этом менеджере очередей, через клиентское подключение.
Альтернативный вариант – создание и запуск нового менеджера очередей. В этом случае следует заменить host1/echo.hub именем созданного вами менеджера очередей.
Если ваш компьютер не имеет IP-адреса либо его адрес часто меняется, можно использовать универсальное хост-имя локального компьютера – localhost.
10.2.1. Создание и запуск слушателя
Ниже рассказывается, как создать и запустить для менеджера очередей слушатель (listener), предоставляющий возможность идентификации в сети. В WebSphere MQ 6.0 слушатели являются объектами WebSphere MQ, объявленными в менеджере очередей. Эти действия можно выполнить при помощи WebSphere MQ Explorer или команд MQSC.
Слушатель отслеживает некоторый порт в TCP/IP-сети. Порт – фундаментальное понятие TCP/IP-сетей. Существует множество портов, которые могут прослушиваться сетевыми службами, работающими на компьютере. Предполагается, что выбранные для следующих примеров порты не прослушиваются другими службами. В противном случае выберите другой порт и замените им соответствующие номера портов в приведенных ниже примерах.
Если в системе работает единственный менеджер очередей, он обычно прослушивает порт 1414 – стандартный порт WebSphere MQ. В приведенных ниже инструкциях используется произвольный диапазон портов, который вряд ли будет занят другими менеджерами очередей и сетевыми службами.
Применение WebSphere MQ Explorer
Выполните следующие действия.
- Щелкните правой кнопкой папку Listeners в менеджере очередей и выберите New\TCP Listener.Примечание Папка Listeners находится внутри папки Advanced менеджера очередей (см. дерево папок в окне навигатора).
Если флажок Create listener configured for TCP/IP на странице Enter listener options (Step 4) мастера Create Queue Manager был помечен, объект-слушатель LISTENER.TCP был создан автоматически.
В этом случае щелкните правой кнопкой объект-слушатель в таблице и выберите Stop. После остановки слушателя щелкните его правой кнопкой, выберите команду Delete и подтвердите удаление.
- Введите LISTENER.TCP в поле name.
- Щелкните Next.
- Введите в поле Description следующий текст:
TCP/IP Listener for queue manager
- Введите 9001 в поле Port.
- Установите для поля Control значение Queue Manager, чтобы слушатель автоматически запускался и останавливался вместе с менеджером очередей.
- Щелкните Finish.
- Щелкните правой кнопкой строку LISTENER.TCP в таблице и выберите Start – слушатель будет запущен.
- Убедитесь, что в столбце Listener status содержится значение Running. В противном случае щелкните кнопку Refresh в правом верхнем углу экрана и снова проверьте состояние слушателя.
Менеджеры очередей, работающие на одном компьютере, должны прослушивать разные TCP/IP-порты.
Применение команд MQSC
Выполните следующие действия.
- Создайте объект-слушатель, который автоматически запускается и останавливается вместе с менеджером очередей. Для этого выполните следующую команду MQSC в отношении менеджера очередей host1/echo.hub:
DEFINE LISTENER('LISTENER.TCP') + TRPTYPE(TCP) PORT(9001) CONTROL(QMGR) + DESCR('TCP/IP Listener for queue manager')
- Запустите слушатель, выполнив следующую команду MQSC:
START LISTENER('LISTENER.TCP')
Проверьте, свободен ли выбранный порт, перед щелчком Finish. Порт, к которому привязан объект-слушатель, можно изменить и после создания менеджера очередей. После смены порта непременно перезапустите слушатель.
10.2.2. Создание объекта канала серверного подключения
Объект канала серверного подключения определяет имя и атрибуты канала для клиентских подключений к менеджеру очередей.
Один из ключевых атрибутов, которые можно настроить для объекта канала серверного подключения, – идентификатор локального пользователя, под которым удаленные приложения подключаются через канал, представленный данным объектом (обычно это идентификатор пользователя MCA, MCAUSER).
Это удобно, поскольку приложения, обращающиеся к менеджеру очередей с удаленных машин, могут работать под различными пользовательскими учетными записями (например, если один из них работает на компьютере под управлением UNIX, а другой – на Windows-компьютере). При выполнении приведенных ниже упражнений можно использовать имя, под которым вы входите в систему. Это позволит приложениям, работающим на любом компьютере, обращаться к компьютеру, на котором работает менеджер очередей, с привилегиями администратора WebSphere MQ.
Ниже рассказывается, как создать объект канала серверного подключения с именем all.clients, который будет использоваться в примерах этого раздела для подключения приложений к менеджеру очередей. Это делается с использованием WebSphere MQ Explorer или команд MQSC.
Применение WebSphere MQ Explorer
Выполните следующие действия.
- Щелкните правой кнопкой папку Channels в менеджере host1/echo.hub и выберите New\Server-connection Channel.
- Введите all.clients в поле Name.
- Щелкните Next.
- При желании перейдите в секцию MCA и укажите имя пользователя в поле MCA user ID.
- Щелкните Finish.
Применение команд MQSC
Выполните следующую команду MQSC в отношении менеджера очередей host1/echo.hub:
DEFINE CHANNEL('all.clients') CHLTYPE(SVRCONN) MCAUSER('имя_пользователя')
10.2.3. Подключение с использованием переменной кружения MQSERVER
Клиентский канальный агент (message channel agent, MCA), доступный при работе с MQI напрямую (например, из приложений, написанных на С), может быть настроен при помощи переменных окружения. Базовые атрибуты, включая имя канала и подключения, настраиваются при помощи переменной MQSERVER.
Приложения, использующие базовый клиентский MCA , и те, что работают с менеджером очередей напрямую, создают с применением разных наборов библиотек WebSphere MQ. Библиотеки, применяемые в первом случае, обычно называются клиентскими библиотеками WebSphere MQ.
С WebSphere MQ поставляются версии базовых программ-примеров, таких как amqsput, amqsget, amqsbcg, amqsreq и amqsech, скомпилированных с использованием клиентских библиотек WebSphere MQ. Для вызова этих версий добавьте латинскую букву "c" к имени нужного приложения, например: amqsputc, amqsgetc, amqsbcgc, amqsreqc или amqsechc.
При подключении к менеджеру очередей в режиме клиента задают имя менеджера (обычно оно совпадает с именем менеджера, к которому требуется подключиться). Если вместо имени ввести звездочку (*), можно подключиться к произвольному менеджеру очередей.
Чтобы добавить или извлечь сообщения из очереди, подключившись к менеджеру очередей как клиент, с использованием переменной окружения MQSERVER и программ-примеров WebSphere MQ, выполните следующие действия.
- Определите в локальном менеджере очередей очередь с произвольным именем (в данном примере – queue1 ).
- Присвойте переменной окружения MQSERVER следующее значение:
- в Windows:
set MQSERVER=all.clients/TCP/host1.example.com(9001)
- в UNIX:
MQSERVER=all.clients/TCP/'host1.example.com(9001)' export MQSERVER
- в Windows:
- Добавьте сообщения в очередь с помощью команды amqsputc:
amqsputc queue1 host1/echo.hub
- Для просмотра сообщений в очереди воспользуйтесь командой amqsbcgc:
amqsbcgc queue1 host1/echo.hub > queue1.txt
- Извлеките сообщения из очереди командой amqsgetc:
amqsgetc queue1 host1/echo.hub
- Для запроса эхо-службы, запускаемой с помощью триггера для очереди host1/echo.hub, выполните следующую команду:
amqsreqc echo host1/echo.hub echo.replies.manual