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

Построение инфраструктуры WebSphere MQ: практическое руководство

Аннотация: Изучая эту лекцию, вы дополните локальную инфраструктуру, созданную при изучении предыдущей лекции. Вы научитесь создавать клиентские подключения к менеджерам очередей и выполнять удаленное администрирование при помощи WebSphere MQ Explorer. Вы также освоите построение центрально-лучевой инфраструктуры, создание кластеров менеджеров очередей; вы увидите, как это облегчает администрирование и предоставляет дополнительные возможности по балансировке нагрузки. Центрально-лучевая инфраструктура и кластеры менеджеров очередей – связанные понятия, они сообща используют различные службы

В этой лекции обсуждаются следующие темы:

  • Настройка окружения
  • Подключение к менеджеру очередей в режиме клиента
  • Построение центрально-лучевой инфраструктуры
  • Создание кластеров менеджеров очередей

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 именем созданного вами менеджера очередей.

Примечание Вышеописанные действия могут быть выполнены на одном компьютере. В этом случае просто подставьте вместо host1.example.com хост-имя или IP-адрес своего компьютера.

Если ваш компьютер не имеет IP-адреса либо его адрес часто меняется, можно использовать универсальное хост-имя локального компьютера – localhost.

10.2.1. Создание и запуск слушателя

Ниже рассказывается, как создать и запустить для менеджера очередей слушатель (listener), предоставляющий возможность идентификации в сети. В WebSphere MQ 6.0 слушатели являются объектами WebSphere MQ, объявленными в менеджере очередей. Эти действия можно выполнить при помощи WebSphere MQ Explorer или команд MQSC.

Примечание Предполагается, что вы работаете с менеджером очередей WebSphere MQ V6.0, в прежних версиях слушатели создавались и запускались независимо от менеджеров очередей.

Слушатель отслеживает некоторый порт в TCP/IP-сети. Порт – фундаментальное понятие TCP/IP-сетей. Существует множество портов, которые могут прослушиваться сетевыми службами, работающими на компьютере. Предполагается, что выбранные для следующих примеров порты не прослушиваются другими службами. В противном случае выберите другой порт и замените им соответствующие номера портов в приведенных ниже примерах.

Если в системе работает единственный менеджер очередей, он обычно прослушивает порт 1414 – стандартный порт WebSphere MQ. В приведенных ниже инструкциях используется произвольный диапазон портов, который вряд ли будет занят другими менеджерами очередей и сетевыми службами.

Применение WebSphere MQ Explorer

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

  1. Щелкните правой кнопкой папку Listeners в менеджере очередей и выберите New\TCP Listener.
    Примечание Папка Listeners находится внутри папки Advanced менеджера очередей (см. дерево папок в окне навигатора).

    Если флажок Create listener configured for TCP/IP на странице Enter listener options (Step 4) мастера Create Queue Manager был помечен, объект-слушатель LISTENER.TCP был создан автоматически.

    В этом случае щелкните правой кнопкой объект-слушатель в таблице и выберите Stop. После остановки слушателя щелкните его правой кнопкой, выберите команду Delete и подтвердите удаление.

  2. Введите LISTENER.TCP в поле name.
  3. Щелкните Next.
  4. Введите в поле Description следующий текст:
    TCP/IP Listener for queue manager
  5. Введите 9001 в поле Port.
  6. Установите для поля Control значение Queue Manager, чтобы слушатель автоматически запускался и останавливался вместе с менеджером очередей.
  7. Щелкните Finish.
  8. Щелкните правой кнопкой строку LISTENER.TCP в таблице и выберите Start – слушатель будет запущен.
  9. Убедитесь, что в столбце Listener status содержится значение Running. В противном случае щелкните кнопку Refresh в правом верхнем углу экрана и снова проверьте состояние слушателя.
Примечание Если в столбце состояния по-прежнему находится значение Stopped, скорее всего, в системе работает другой менеджер очередей, прослушивающий выбранный порт. Проверьте наличие объекта-слушателя LISTENER.TCP в каждом из менеджеров очередей, работающих на компьютере.

Менеджеры очередей, работающие на одном компьютере, должны прослушивать разные TCP/IP-порты.

Применение команд MQSC

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

  1. Создайте объект-слушатель, который автоматически запускается и останавливается вместе с менеджером очередей. Для этого выполните следующую команду MQSC в отношении менеджера очередей host1/echo.hub:
    DEFINE LISTENER('LISTENER.TCP') + TRPTYPE(TCP) PORT(9001) CONTROL(QMGR) +
    DESCR('TCP/IP Listener for queue manager')
  2. Запустите слушатель, выполнив следующую команду MQSC:
    START LISTENER('LISTENER.TCP')
Примечание Если вы используете WebSphere MQ Explorer, отмечайте флажок Create listener configured for TCP/IP на странице Enter listener options (Step 4) мастера Create Queue Manager, чтобы при необходимости автоматически создавать объекты-слушатели вместе с менеджерами очередей.

Проверьте, свободен ли выбранный порт, перед щелчком Finish. Порт, к которому привязан объект-слушатель, можно изменить и после создания менеджера очередей. После смены порта непременно перезапустите слушатель.

10.2.2. Создание объекта канала серверного подключения

Объект канала серверного подключения определяет имя и атрибуты канала для клиентских подключений к менеджеру очередей.

Один из ключевых атрибутов, которые можно настроить для объекта канала серверного подключения, – идентификатор локального пользователя, под которым удаленные приложения подключаются через канал, представленный данным объектом (обычно это идентификатор пользователя MCA, MCAUSER).

Это удобно, поскольку приложения, обращающиеся к менеджеру очередей с удаленных машин, могут работать под различными пользовательскими учетными записями (например, если один из них работает на компьютере под управлением UNIX, а другой – на Windows-компьютере). При выполнении приведенных ниже упражнений можно использовать имя, под которым вы входите в систему. Это позволит приложениям, работающим на любом компьютере, обращаться к компьютеру, на котором работает менеджер очередей, с привилегиями администратора WebSphere MQ.

Ниже рассказывается, как создать объект канала серверного подключения с именем all.clients, который будет использоваться в примерах этого раздела для подключения приложений к менеджеру очередей. Это делается с использованием WebSphere MQ Explorer или команд MQSC.

Применение WebSphere MQ Explorer

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

  1. Щелкните правой кнопкой папку Channels в менеджере host1/echo.hub и выберите New\Server-connection Channel.
  2. Введите all.clients в поле Name.
  3. Щелкните Next.
  4. При желании перейдите в секцию MCA и укажите имя пользователя в поле MCA user ID.
  5. Щелкните 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.

Примечание Клиентские MCA, предназначенные для использования с другими API, такими как Java, JMS, .NET и XMS, настраиваются по-другому. Подробнее об этом см. в руководстве WebSphere MQ по тому API, с которым вы работаете.

При подключении к менеджеру очередей в режиме клиента задают имя менеджера (обычно оно совпадает с именем менеджера, к которому требуется подключиться). Если вместо имени ввести звездочку (*), можно подключиться к произвольному менеджеру очередей.

Чтобы добавить или извлечь сообщения из очереди, подключившись к менеджеру очередей как клиент, с использованием переменной окружения MQSERVER и программ-примеров WebSphere MQ, выполните следующие действия.

  1. Определите в локальном менеджере очередей очередь с произвольным именем (в данном примере – queue1 ).
  2. Присвойте переменной окружения MQSERVER следующее значение:
    • в Windows:
      set MQSERVER=all.clients/TCP/host1.example.com(9001)
    • в UNIX:
      MQSERVER=all.clients/TCP/'host1.example.com(9001)' export MQSERVER
  3. Добавьте сообщения в очередь с помощью команды amqsputc:
    amqsputc queue1 host1/echo.hub
  4. Для просмотра сообщений в очереди воспользуйтесь командой amqsbcgc:
    amqsbcgc queue1 host1/echo.hub > queue1.txt
  5. Извлеките сообщения из очереди командой amqsgetc:
    amqsgetc queue1 host1/echo.hub
  6. Для запроса эхо-службы, запускаемой с помощью триггера для очереди host1/echo.hub, выполните следующую команду:
    amqsreqc echo host1/echo.hub echo.replies.manual
Примечание При возникновении ошибок с кодами 2058 или 2059 проверьте системные журналы ошибок WebSphere MQ и менеджера очередей (см. "Менеджеры очередей: общее представление и настройка" ).
Михаил Завалко
Михаил Завалко
Беларусь, Минск
Artem Bardakov
Artem Bardakov
Россия